PHP self关键字指向类静态变量

作者: Note 分类: php框架与应用 发布时间: 2016-01-13 04:11

首先我们要明确一点,self是指向类本身,也就是PHP self关键字是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。

  1. < ?php  
  2. class Counter  
  3. {  
  4. //定义属性,包括一个静态变量  
  5. private static $firstCount = 0;  
  6. private $lastCount;  
  7. //构造函数  
  8. function __construct()  
  9. {  
  10. $this->lastCount = ++selft
    ::$firstCount;
     //使用PHP self关键字来调用静态变量,使用self
    调用必须使用::(域运算符号)  
  11. }  
  12. //打印最次数值  
  13. function printLastCount()  
  14. {  
  15. print( $this->lastCount );  
  16. }   
  17. }  
  18. //实例化对象  
  19. $countObject = new Counter();  
  20. $countObject->printLastCount();
     //输出 1  
  21. ?> 

我 们这里只要注意两个地方,第6行和第12行。我们在第二行定义了一个静态变量$firstCount,并且初始值为0,那么在12行的时候调用了这个值 得,使用的是PHP self关键字来调用,并且中间使用"::"来连接,就是我们所谓的域运算符。

那么这时候我们调用的就是类自己定义的静态变量$ frestCount,我们的静态变量与下面对象的实例无关,它只是跟类有关,那么我调用类本身的的,那么我们就无法使用this来引用,可以使用PHP self关键字来引用,因为self是指向类本身,与任何对象实例无关。换句话说,假如我们的类里面静态的成员,我们也必须使用self来调用。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

87 + = 97