0

我经常看到这样的代码:

X::y()->z();

这是一个静态对象调用方法 y,y 返回一个对象的结果,然后这个对象调用了一个名为 z 的方法吗?

谢谢你。

4

4 回答 4

1

静态对象不是在调用y,而是在y类上静态调用方法。除此之外,你是对的。

于 2013-10-08T09:56:50.133 回答
0

它可能是也可能不是静态方法调用。如果调用是从实例化类内部进行的并且X是该类的父类,则该调用可能是非静态的。

有一件事是肯定的:X::y()返回一个对象。

于 2013-10-08T10:02:53.040 回答
0

它可能看起来像这样:

class X {
  public static function y(){
    return new self();
  }

  public function z(){

  }
}
于 2013-10-08T09:57:53.330 回答
0

您在对象X上调用静态方法y(),然后在从y()返回的结果对象上调用z()方法

于 2013-10-08T09:58:30.377 回答