2

私はこれを行う他のオブジェクトを見てきました:

$obj->method1()->method2();

それ、どうやったら出来るの?各関数は、オブジェクトのポインターを変更するだけですか、それともポインターを返すだけですか?

このスタイルの適切な用語はわかりません。誰かがそれを手伝ってくれるなら、それは素晴らしいことです。

4

4 に答える 4

5

これは$this、各関数の最後に戻ることで実現され、連鎖可能な参照を提供します。

class MyClass {
    public function method1() {
        //...
        return $this;
    }
    public function method2() {
        //...
        return $this;
    }
}
于 2010-06-02T22:50:04.160 に答える
4

流体インターフェース。

$ thisを返すようにオブジェクトのmethod1()を設定するだけです

于 2010-06-02T22:49:01.913 に答える
1

Personクラスがあるとしましょう。あなたはあなたのメソッドにそのようなことをさせるでしょう:

public function setName($name)
{
    $this->name = $name;
    return $this; // We now return $this (the Person)
}

Zend Frameworkをダウンロードして、コードの一部を確認してください。そこから多くのことを学ぶことができます。

于 2010-06-02T22:51:26.883 に答える
1

これをメソッドチェーンと呼びます。http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/を参照してください

メソッド内にも

public function method1()
   // do stuff

   return $this;
}
于 2010-06-02T22:53:06.693 に答える