dof*_*nco 3 php oop methods static class
好吧,我不知道为什么这段代码有效
class MyObject {
public function myBaseMethod()
{
echo 'I\'m declared in' . __CLASS__;
}
}
$instance = new MyObject();
$instance->myBaseMethod();
MyObject::myBaseMethod();
// Output
I'm declared inMyObject
I'm declared inMyObject
Run Code Online (Sandbox Code Playgroud)
我可以通过创建MyObject类的新实例或静态方法来调用myBaseMethod().但myBaseMethod未声明为静态.
我以为我可以使用::仅用于静态成员/方法.
任何解释都会
是的,这是可能的.我想知道为什么.但请注意,PHP会抛出一个E_STRICT错误,这对于新代码来说肯定是不可接受的,而遗留代码中可能会发生错误.您不应该调用未声明为static的方法static.尝试修复遗留代码.