【发布时间】:2014-08-11 18:31:06
【问题描述】:
我想知道,在 PHP 中使用方法链接时,如果最后一个链接的方法可能会返回其父级。
这是一个例子。
class foo
{
function a(){
return $this;
}
function b()
{
return $this;
}
function c()
{
return $this;
}
}
echo (new foo)->c()->a(); // c
在上面的例子中,你可以看到,a() 是输出'c'。我可以/已经使用参数或静态属性来做到这一点,但我正在考虑是否可以用另一种方式来完成,特别是使用我碰巧知之甚少的Reflections。
【问题讨论】:
-
本地 - 没有。如果你需要它(以及“链接”作为核心解决方案)——那么是时候重新考虑你的逻辑和架构了。只是……不好。它不可读、不可扩展且不可靠
-
我不认为这很糟糕。有很多函数可以在类上下文中模拟上述逻辑,方法也应该如此。
-
parent是什么意思?先前调用的函数的返回?也许解释得更好一点。 -
@AbraCadaver 是的。之前的函数名。
标签: php oop method-chaining