【问题标题】:PHP Method Chaining With Parent与父级的 PHP 方法链接
【发布时间】:2012-05-02 22:29:53
【问题描述】:

假设我有以下代码。

class A {
    function one() {
        return $this;
    }
}

class B extends A {
    function two() {
        return $this;
    }
}

有什么方法可以让我使用父类中的函数进行方法链? 比如……

$b = new B();
$b->one()->two();

【问题讨论】:

  • 这有什么问题?它适用于我在那里添加一些回声,您将看到正确顺序的输出。
  • @Gohn67 - 你的权利,.. 所以在我的真实方法中肯定有其他问题,页面不断崩溃。我想我应该先测试一下这个简化版本。 :) 谢谢!

标签: php method-chaining


【解决方案1】:

请参阅this question 以获得解释特殊变量$this 含义的几个回复。

简而言之,它指的是当前对象。您正在创建B 的实例,因此即使您在function one() 中引用$this,您仍然指的是封闭实例。

【讨论】:

  • B 继承自 A,所以我认为他的代码示例确实有效。
  • 是的,代码确实执行了。我没有说代码不起作用。我刚刚说过$this 在这两种情况下都会引用B 的实例。
猜你喜欢
  • 2014-12-17
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2013-06-24
  • 2016-10-18
相关资源
最近更新 更多