因为PHP允许像动态函数那样调用静态函数吗?
我使用的是php 5.3.2
class weird{
public static function iamstatic($calledFrom){
echo "I am a static function called with a $calledFrom operator\n";
}
public function test(){
self::iamstatic("static");
$this->iamstatic("dynamic");
}
}
$c = new weird();
$c->test();
weird::iamstatic("Static outside class");
$c->iamstatic("Dynamic outside class");
输出:
I am a static function called with a static operator
I am a static function called with a dynamic operator
I am a static function called with a Static outside class operator
I am a static function called with a Dynamic outside class operator
答案 0 :(得分:4)
总是可以使用php5.0及以上版本。
此外,它在文档(static)
中提到将类属性或方法声明为静态可使它们可访问 无需实例化类。声明为的财产 无法使用实例化的类对象访问static(尽管是 静态方法可以)。
这不是一个错误(static methods assigned to instances)
答案 1 :(得分:0)
我不知道这是可能的,尽管它可能并不重要。您的静态方法不允许您引用$this
,因此您无法在非静态上下文中使用它。如果您不需要引用$this
,那么无论哪种方式都无关紧要,这就是您的代码所证明的。