5

我找不到关于上述问题的简单示例:如何检测方法链的结尾?

例如,我只是看了 Zend_Db_Select ,但是对于我认为这个简单的问题来说,这个太复杂了。

是否有可能在 PHP 中捕获方法链的“结束”?

谢谢,法布里克

4

1 回答 1

2

不,这是不可能的。

Zend_Db_Select检测方法链的结束。您链接的每个方法都会返回$this,当您停止链接时,您就停止了链接。没有什么神奇的东西可以说:嘿,这是链条的末端

例子:

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

如果所有方法return $this$foo则将包含的结果chain(),同样如此$this。您可以从那里继续链接。当然,除了返回之外,这些方法还会做其他事情$this,例如设置内部状态——但这就是方法链接的全部内容。

如果您的代码需要知道它已到达链的末尾,则必须在运行它之前设置链,例如责任链模式

于 2010-04-06T09:44:40.660 回答