キーワード:this/self/parent

4517 ワード

キーワード:this/self/parent
      (OOP,Object Oriented Programming)                。  OOP     PHP     ,    PHP       web           。 
PHP5 , OOP , , PHP4 。 this,self,parent 。 , 、 、 。 ,this ( C ),self ,parent 。 , 。 , 。

class name // name
{
private $name; // ,

// ,
function __construct( $name )
{
$this->name = $name; // this ①
}

//
function __destruct(){}

//
function printname()
{
print( $this->name ); // this ②, echo
}
}
$obj1 = new name( "PBPHome" ); // ③

//
$obj1->printname(); // : PBPHome
echo "
"; // :

//
$obj2 = new name( "PHP" );

//
$obj2->printname(); // :PHP
?>

: ① ② this , this ? this , ( ③), this $obj1 , ② print( $this->name ), "PBPHome"。 ,print( $this->name ) print( $obj2->name ), "PHP"。 ,this , 。

{ }。PHP this,self,parent self

self

,self , self , self 。 ( static) , self 。 self :: ( ), 。

class counter // counter
{
// , $firstCount, 0 ①
private static $firstCount = 0;
private $lastCount;

//
function __construct()
{
$this->lastCount = ++self::$firstCount; // self ②
}

// lastCount
function printLastCount()
{
print( $this->lastCount );
}
}

//
$obj = new Counter();

$obj->printLastCount(); // , 1

?>

① ②。 ① $firstCount, ② self , $frestCount。 , , , this , self , 。 this $obj, 。

self , 。 。

{ }PHP this,self,parent parent

parent 。

, ,parent , parent 。 :

// Animal
class Animal
{
public $name; // , $name

// ,
public function __construct( $name )
{
$this->name = $name;
}
}

// Person Animal
class Person extends Animal
{
public $personSex; // , $personSex 、$personAge
public $personAge;

//
function __construct( $personSex, $personAge )
{
parent::__construct( "PBPHome" ); // parent ①
$this->personSex = $personSex;
$this->personAge = $personAge;
}

// , , : is name,age is
function printPerson()
{
print( $this->name. " is " .$this->personSex. ",age is " .$this->personAge );
}
}

// Person
$personObject = new Person( "male", "21");

//
$personObject->printPerson(); // :PBPHome is male,age is 21

?>

this , 。 : public( , ) , , this 。 ①: parent::__construct( "heiyeluren" ), parent , , name PBPHome。 , $personObject1, name PBPHome。

:this , ;self , ;parent , parent 。

posted on
2016-05-06 18:23 McGregorVon読書(
...) コメント(
...) コレクションの編集
転載先:https://www.cnblogs.com/mcgregorvon/p/5466661.html