【发布时间】:2015-04-17 18:20:41
【问题描述】:
情况:
Class MyClass {
...
public function method($args) {
// code
...
if (is the last call) {
return $something;
}
return $this;
}
...
}
....
$obj = new MyClass;
$obj->method($some_args)->method($something_else)->method($more_data);
我如何知道method 的最后一次通话是否真的是最后一次?
【问题讨论】:
-
我不知道。你告诉我。什么调用了这段代码? $args 是否告诉我们这是最后一关?否则你的检查可能需要在调用它的地方执行。
-
一般来说,函数应该不负责知道这些信息。它们应该是独立的代码,只做好一件事。可能有一个答案会让你开心,但它几乎毫无疑问会让你的代码变得更糟。
-
谢谢,没有真正的场景,所以 $args 和其他代码并不重要,这只是一个非常通用的情况。我在编写一个小型学习框架时考虑过这个问题
标签: php oop method-chaining method-call