我刚刚编写了一个示例类,以便更好地理解PHP中的静态方法和变量。我理解静态变量如何工作,但静态函数没有按预期工作。如果您看到以下代码
class Car{
static $wheels=4;
static function getWheels(){
echo Car::$wheels=10;
}
}
$car1 = new Car();
$car1->getWheels();
我在期待
$car1->getWheels(); to throw and error since getWheels is a static method.
为什么这不会引发错误或警告?
答案 0 :(得分:2)
我认为它来自PHP 4次,其中没有static
个关键字,但您可以调用静态方法,无论是->
还是::
运算符
事实上,从技术上讲,调用$car1->getWheels()
在运行时被PHP翻译为Car::getWheels()
随着PHP5的出现,这个选项被用于向后兼容目的
如果您启用E_STRICT
错误报告,则应立即发出警告