我正在读一本关于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++;
答案 0 :(得分:1)
因为在php中你必须用self引用静态函数。
还有一个关于stackoverflow的解释:see here
答案 1 :(得分:0)
当一个类静态调用ie. ClassName::someMethod()
时,该类没有“实例”。
由于$this
引用了类的实例,因此静态使用类时,$ this将不存在。 (因此只有在使用$var = new ClassName()
)
self
指的是类(不是对象),因此在静态类中,您可以使用self::..
来引用类中的属性或方法。