使用self代替此变量

时间:2013-11-13 08:28:37

标签: php

我正在读一本关于php的书,并找到了这段代码:

class Employee {
        static public $NextID = 1;
        public $ID;

        public function _ _construct( ) {
                $this->ID = self::$NextID++;
        }

        public function NextID( ) {
                return self::$NextID;
        }
}

为什么在这里使用self::$NextID++;我可以像这样使用:

$this-ID = $this->$NextID++;

2 个答案:

答案 0 :(得分:1)

因为在php中你必须用self引用静态函数。

还有一个关于stackoverflow的解释:see here

答案 1 :(得分:0)

当一个类静态调用ie. ClassName::someMethod()时,该类没有“实例”。

由于$this引用了类的实例,因此静态使用类时,$ this将不存在。 (因此只有在使用$var = new ClassName()

创建班级对象时才可以使用此项

self指的是类(不是对象),因此在静态类中,您可以使用self::..来引用类中的属性或方法。