我已经注意到在PHP中我可以创建一个没有静态修饰符的函数,但仍然将其称为静态函数,只是好奇为什么允许这样做/实际发生了什么。
class Foo {
public function bar($i) {
return $i + 1;
}
}
Foo::bar(4); // 5
我希望静态修饰符是必需的,如:
class Foo {
public static function bar($i) {
return $i + 1;
}
}
Foo::bar(4); // 5
答案 0 :(得分:5)
与PHP4的兼容性,其描述的行为实际上是如何工作的(没有static
个关键字)。
您应该收到E_STRICT
错误,除非您的error_reporting
设置为不显示E_STRICT
。