我注意到,在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
这是为了与PHP4兼容,其中所描述的行为是它的实际工作方式(没有static
关键字)。
不过,除非您的error_reporting
设置为不显示E_STRICT
,否则您应该得到一个E_STRICT
错误。