私はこれを行う他のオブジェクトを見てきました:
$obj->method1()->method2();
それ、どうやったら出来るの?各関数は、オブジェクトのポインターを変更するだけですか、それともポインターを返すだけですか?
このスタイルの適切な用語はわかりません。誰かがそれを手伝ってくれるなら、それは素晴らしいことです。
私はこれを行う他のオブジェクトを見てきました:
$obj->method1()->method2();
それ、どうやったら出来るの?各関数は、オブジェクトのポインターを変更するだけですか、それともポインターを返すだけですか?
このスタイルの適切な用語はわかりません。誰かがそれを手伝ってくれるなら、それは素晴らしいことです。
これは$this
、各関数の最後に戻ることで実現され、連鎖可能な参照を提供します。
class MyClass {
public function method1() {
//...
return $this;
}
public function method2() {
//...
return $this;
}
}
流体インターフェース。
$ thisを返すようにオブジェクトのmethod1()を設定するだけです
Personクラスがあるとしましょう。あなたはあなたのメソッドにそのようなことをさせるでしょう:
public function setName($name)
{
$this->name = $name;
return $this; // We now return $this (the Person)
}
Zend Frameworkをダウンロードして、コードの一部を確認してください。そこから多くのことを学ぶことができます。
これをメソッドチェーンと呼びます。http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/を参照してください
メソッド内にも
public function method1()
// do stuff
return $this;
}