我试图在PHP中找到关于可链接OOP对象的一个很好的介绍,但还没有任何好的结果。
这样的事情怎么办?
$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();
甚至:$this->className->add('1','value')->type('string')->doStuff();
非常感谢!
答案 0 :(得分:17)
关键是在每个方法中返回对象本身:
class Foo {
function add($arg1, $arg2) {
// …
return $this;
}
function type($arg1) {
// …
return $this;
}
function doStuff() {
// …
return $this;
}
}
每个返回对象本身的方法都可以用作方法链中的中间件。有关更多详细信息,请参阅Wikipedia’s article on Method chaining。
答案 1 :(得分:11)
只需在add()和type()方法中返回$ this:
function add() {
// other code
return $this;
}
答案 2 :(得分:5)
另一个术语是Fluent Interface