我经常看到这样的代码:
X::y()->z();
这是一个静态对象调用方法 y,y 返回一个对象的结果,然后这个对象调用了一个名为 z 的方法吗?
谢谢你。
静态对象不是在调用y
,而是在y
类上静态调用方法。除此之外,你是对的。
它可能是也可能不是静态方法调用。如果调用是从实例化类内部进行的并且X
是该类的父类,则该调用可能是非静态的。
有一件事是肯定的:X::y()
返回一个对象。
它可能看起来像这样:
class X {
public static function y(){
return new self();
}
public function z(){
}
}
您在对象X上调用静态方法y(),然后在从y()返回的结果对象上调用z()方法