如何使用__callStatic [无错误]在类中调用非静态方法

时间:2015-01-18 02:39:23

标签: php oop

我有一个类,其中包含一个非静态方法function Tire(){},如此

class Car{
  function Tire(){}  
   static function __callStatic($func, $arg){
      if(method_exists(__CLASS__, $func)){
          return self::$func(); 
       }
   }
}

我试图将其静态称为

Car::Tire()

但是,我得到了这个错误。

Strict Standards: Non-static method Car::Tire() should not be called statically 

1 个答案:

答案 0 :(得分:0)

return self::$func();实际上静态运行$func并返回结果。您无法静态运行非静态函数 - 因此,错误消息。

您无法从静态上下文调用非静态函数。静态上下文没有任何操作对象。如果您甚至可以调用该非静态函数,如果该对象不存在,它将如何运作?