我已經看到了這樣做的其他對象:如何創建PHP方法鏈接?
$obj->method1()->method2();
我該怎麼辦呢?每個函數只是修改一個對象的指針或返回一個指針?
我不知道這種風格的適當術語 - 如果任何人都可以幫助我,那就太好了。
我已經看到了這樣做的其他對象:如何創建PHP方法鏈接?
$obj->method1()->method2();
我該怎麼辦呢?每個函數只是修改一個對象的指針或返回一個指針?
我不知道這種風格的適當術語 - 如果任何人都可以幫助我,那就太好了。
這是通過在每個功能的端返回$this
,從而使一個可鏈接的參考實現。
class MyClass {
public function method1() {
//...
return $this;
}
public function method2() {
//...
return $this;
}
}
流體接口。
只需設置你的對象的方法一()返回$此
可以說你有一個Person類。你將有你的方法做這樣的事情:
public function setName($name)
{
$this->name = $name;
return $this; // We now return $this (the Person)
}
下載Zend框架和檢查代碼的某些部分 - 你可以從那裏學到很多東西。
我把這稱爲方法鏈。見http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/
也是你的方法
public function method1()
// do stuff
return $this;
}
以同樣的方式裏面,如果我回到另一個對象,也可以鏈接?在我的具體情況下,我返回一個MySQLi準備好的語句,我想我可以立即做一個bind_param? – 2010-06-02 23:01:50
是的。請記住,鏈中返回許多不同的對象可能會使您的API非常容易混淆。可能值得輸入額外的行,而不是將鏈轉移到另一個對象。 – 2010-06-02 23:04:48
完全理解謝謝! :) – 2010-06-02 23:20:18