我試圖找到一個很好的介紹PHP中的可鏈式OOP對象,但沒有任何好的結果呢。PHP OOP:可鏈接對象?
怎麼能這樣做呢?
$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();
甚至:$this->className->add('1','value')->type('string')->doStuff();
非常感謝!
我試圖找到一個很好的介紹PHP中的可鏈式OOP對象,但沒有任何好的結果呢。PHP OOP:可鏈接對象?
怎麼能這樣做呢?
$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();
甚至:$this->className->add('1','value')->type('string')->doStuff();
非常感謝!
的關鍵是每個方法內返回對象本身:
class Foo {
function add($arg1, $arg2) {
// …
return $this;
}
function type($arg1) {
// …
return $this;
}
function doStuff() {
// …
return $this;
}
}
每一個方法,它返回對象本身,可以使用如在方法鏈的中間。有關更多詳細信息,請參見Wikipedia’s article on Method chaining。
只返回$這在add()和類型()方法:
function add() {
// other code
return $this;
}
驚人多麼容易,這是做的。不知道。非常感謝Gumbo! – Industrial 2010-05-28 15:25:51