PHP: call to an instance method via ClassName::method syntax, results in a static call?

后端 未结 2 1130
暖寄归人
暖寄归人 2021-01-15 22:05

Her is my code:

class MyClass 
{
   public $prop;
   public function method ()
   {
     echo $this->prop;
   }
}

Then somewhere in the

相关标签:
2条回答
  • 2021-01-15 22:27

    Calling non-static methods statically generates an E_STRICT level warning.

    http://php.net/manual/en/language.oop5.static.php

    I suppose you have E_STRICT warnings suppressed. It works (likely for legacy reasons), but it's not recommended.

    0 讨论(0)
  • 2021-01-15 22:38

    For legacy reasons, any class method could be called statically even if it wasn't declared static, because you previously couldn't declare them as such. In those cases, $this would simply refer to nothing because it's not an object-context variable.

    In PHP 5 you get an E_STRICT warning for calling non-static methods statically (as you just did).

    0 讨论(0)
提交回复
热议问题