次のようなコードをよく見かけます。
X::y()->z();
これはメソッド y を呼び出す静的オブジェクトであり、y がオブジェクトを返した結果であり、このオブジェクトが z というメソッドを呼び出すのでしょうか?
ありがとうございました。
次のようなコードをよく見かけます。
X::y()->z();
これはメソッド y を呼び出す静的オブジェクトであり、y がオブジェクトを返した結果であり、このオブジェクトが z というメソッドを呼び出すのでしょうか?
ありがとうございました。
静的オブジェクトは を呼び出していませんy
が、メソッドy
はクラスで静的に呼び出されています。それを除けば、あなたは正しいです。
静的メソッド呼び出しである場合とそうでない場合があります。呼び出しがインスタンス化されたクラス内から行われ、X
そのクラスの親である場合、その呼び出しは非静的である可能性があります。
1 つ確かなことはX::y()
、オブジェクトを返すことです。
次のようになります。
class X {
public static function y(){
return new self();
}
public function z(){
}
}
オブジェクトXで静的メソッドy()を呼び出してから、 y()から返された結果のオブジェクトでz()メソッドを呼び出しています。