我试图在 PHP 中找到关于可链接 OOP 对象的一个很好的介绍,但还没有任何好的结果。
这样的事情怎么能做到?
$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();
甚至:$this->className->add('1','value')->type('string')->doStuff();
非常感谢!
我试图在 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 关于方法链接的文章。
只需在 add() 和 type() 方法中返回 $this:
function add() {
// other code
return $this;
}
另一个术语是Fluent Interface