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