-2

我正在阅读一本 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++;
4

2 回答 2

1

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

已经有关于stackoverflow的解释:见这里

于 2013-11-13T08:31:50.880 回答
0

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

由于$this引用了类的实例,当你的类被静态使用时,$this 将不存在。(所以 $this 仅在您使用创建类的对象时可用$var = new ClassName()

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

于 2013-11-13T08:38:29.400 回答