鏈接的方法是不一樣的方法中聲明功能......其實後者會吐的錯誤(不是函數聲明,而是你調用它的方式)。爲了鏈的方法,只是它返回的對象本身:
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