没有静态的PHP函数仍然可以像静态一样调用

时间:2013-11-21 18:33:10

标签: php static-methods

我已经注意到在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

1 个答案:

答案 0 :(得分:5)

与PHP4的兼容性,其描述的行为实际上是如何工作的(没有static个关键字)。

您应该收到E_STRICT错误,除非您的error_reporting设置为不显示E_STRICT