PHP5中的this,self和parent关键字详解(2) 23 class Counter4 {5 //定义属性,包括一个静态变量6 private static $firstCount = 0;7 private $lastCount;89 //构造函数10 function __construct()11 {12 $this->lastCount = ++selft::$firstCount; //使用self来调用静态变量,使用self调用必须使用::(域运算符号)13 }1415 //打印最次数值16 function printLastCount()17 {18 print( $this->lastCount ); 19 } 20 }2122 //实例化对象23 $countObject = new Counter();2425 $countObject->printLastCount(); //输出 12627 ?>
我们这里只要注意两个地方,第6行和第12行。我们在第二行定义了一个静态变量$firstCount,并且初始值为0,那么在12行的时候调用了这个值得,使用的是self来调用,并且中间使用"::"来连接,就是我们所谓的域运算符,那么这时候我们调用的就是类自己定义的静态变量$frestCount,我们的静态变量与下面对象的实例无关,它只是跟类有关,那么我调用类本身的的,那么我们就无法使用this来引用,可以使用self来引用,因为self是指向类本身,与任何对象实例无关。换句话说,假如我们的类里面静态的成员,我们也必须使用self来调用。
(3)parent
我们知道parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。
1 <?php23 //基类4 class Animal5 {6 //基类的属性7 public $name; //名字89 //基类的构造函数10 public function __construct( $name )11 {12 $this->name = $name;