【问题标题】:How to make child method return parent name, while using method chaining如何在使用方法链接时使子方法返回父名称
【发布时间】: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


【解决方案1】:

不幸的是,我得到了一些 -1 的帮助,所以我无法发表评论,但我可以写答案! :)

查看这篇文章:

how to get function name inside a function in PHP?

如果你得到你的答案,是的......帮助我:)

【讨论】:

  • 你真的应该阅读这个问题。它与获取函数名称无关,它与链接和跟踪有关
  • 为什么不使用stackoverflow.com/a/1006290/2655623?它包含答案。
  • 首先 - 因为在那个答案中这是一个糟糕的建议。第二 - 因为在所有情况下都不起作用。第三 - 因为 - 为什么要复制现有内容?..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
相关资源
最近更新 更多