Q
按順序調用函數
2
A
回答
4
$object->foo1()->foo2()->foo3();
首先,PHP將得到一個指針從$object
變量foo1
方法。它調用這個方法,然後返回另一個對象。這第二個對象(我們稱之爲$object2
)有一個方法foo2()
,這也被稱爲。 foo2()
返回另一個對象($object3
),該對象的方法爲foo3()
,該方法返回任何喜歡的對象。
在某些情況下,$object
,$object2
和$object3
只是指向同一對象的指針。這意味着你可以在同一個類上保持調用方法的順序。
你可以很容易地做到這一點:
class Foo
{
public function nicely()
{
return $this;
}
public function formatted()
{
return $this;
}
public function chained()
{
return $this;
}
public function calls()
{
return $this;
}
}
$foo = new Foo();
$foo->nicely()->formatted()->chained()->calls();
3
當類中的方法返回值時,它們會返回它們自己的對象。這可以讓你繼續按照發布的順序調用該類中的其他方法。
class myClassA {
public $str = NULL;
public function setStr($value){
$this->str .= $value;
return $this; // This is the key to sequencing
}
}
$myclass = new MyClassA();
$myclass->setStr("H")->setStr("E");
// If you echoed the $str variable in myClassA, you would get
// "HE"
+1
我認爲這個概念也在這裏詳細解釋... http://en.wikipedia.org/wiki/Method_chaining – iWantSimpleLife
相關問題
- 1. Wordpress - 按特定順序調用函數
- 2. 順序函數調用
- 3. 函數調用順序
- 4. Javascript函數調用順序
- 5. 按JSP編寫的按順序執行的javascript函數調用
- 6. 是否按順序調用process.nextTick的回調函數?
- 7. 按排序順序的SQL調用聚合函數
- 8. 順序ajax回調函數
- 9. jquery - 按順序執行自定義函數調用
- 10. 爲什麼構造函數按相反順序調用?
- 11. 按照Python中析構函數的調用順序混淆
- 12. Swing Worker - 按自己的順序調用函數
- 13. Swift:按錯誤順序調用的函數?
- 14. 線程同步:確保函數按順序調用
- 15. 如何強制按順序調用幾個函數?
- 16. jQuery ajax請求:按請求順序調用的成功函數
- 17. 調用函數按順序存儲結果
- 18. OCaml函數調用按錯誤順序發生
- 19. C++函數調用順序(boost) - 困惑
- 20. 調用構造函數的順序
- 21. 在vuejs中順序調用函數
- 22. JS順序調用函數失敗
- 23. JavaScript函數調用順序不正確
- 24. jquery $ .post函數調用順序
- 25. 函數調用的順序C
- 26. 函數調用的順序(C++)
- 27. C++構造函數調用順序
- 28. oracle wm_concat函數按順序排序?
- 29. 角度調用循環中的函數/函數按特定順序
- 30. AS3:按順序調用函數而不創建巨大的調用堆棧
多項式,phpmet =偉大的解釋感謝。 – Gowri