5

上記の私の質問に関する簡単な例が見つかりません: メソッドチェーンの終わりを検出するにはどうすればよいですか?

たとえば Zend_Db_Select を見ただけですが、これはこの単純な質問には複雑すぎると思います。

PHPでメソッドチェーンの「終わり」をキャッチすることは可能ですか?

ありがとう、ファブリック

4

1 に答える 1

2

いいえ、できません。

Zend_Db_Selectメソッドチェーンの終わりを検出しません。連鎖するすべてのメソッドは単に戻り$this、連鎖を停止すると、連鎖が停止します。言う魔法のようなものはありません:ねえ、これはチェーンの終わりです.

例:

$foo = $this->is()->a()->method()->chain();

すべてのメソッドが の場合return $this$fooの結果が含まれchain()ます$this。そこから連鎖し続けることができます。もちろん、メソッドは return 以外にも他のことを行います$this。たとえば、内部状態を設定します

コードがチェーンの終わりに達したことを知る必要がある場合は、実行する前にチェーンをセットアップする必要があります (例: Chain of Responsibility pattern )

于 2010-04-06T09:44:40.660 に答える