链接的方法是不一样的方法中声明功能......其实后者会吐的错误(不是函数声明,而是你调用它的方式)。为了链的方法,只是它返回的对象本身:
Class chainableObject
{
public $name=null;
public function __construct($name='')
{
$this->name=$name;
return $this;
}
public function setName($name)
{
$this->name = $name;
return $this;//makes chainable
}
public function greet()
{
echo 'Hello, '.$this->name;
return $this;
}
}
$chain = new chainableObject('Frank')->greet();//outputs: Hello, frank
的解释:所有方法返回的实例本身,所以基本上,这样写的[名称为创建对象的代码段的最后一行: Frank] =>调用此方法的返回值的方法。由于返回值是$this
,具有迎接方法的对象,这是会发生什么......轻松,以获得更多信息:只是谷歌PHP的方法链接
你一直在寻找的关键词是**方法链接**。 :-) – YMMD
我认为你的意思是'$ this',而不是'self'(你的代码示例是正确的)。 – Piskvor
@YMMD是的,我在我现在找不到的另一个答案中提交了我的答案后,我读了它(有人删除它?)。 无论如何,我总是低理论,我很实际... ... :-) – shadyyx