如何创建PHP方法链接?
我见过其他这样做的对象:如何创建PHP方法链接?,php,object,method-chaining,Php,Object,Method Chaining,我见过其他这样做的对象: $obj->method1()->method2(); 我该怎么做?每个函数只是修改对象的指针还是返回指针 我不知道这种风格的合适术语——如果有人能帮我,那就太好了。流体界面 只需将对象的method1()设置为返回$this这是通过在每个函数的末尾返回$this来实现的,从而提供一个可链接的引用 class MyClass { public function method1() { //... return $th
$obj->method1()->method2();
我该怎么做?每个函数只是修改对象的指针还是返回指针
我不知道这种风格的合适术语——如果有人能帮我,那就太好了。流体界面
只需将对象的method1()设置为返回$this这是通过在每个函数的末尾返回
$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 Framework并检查部分代码-您可以从中学到很多。我将其称为方法链接。看 也在你的方法里面
public function method1()
// do stuff
return $this;
}
同样,如果我返回另一个对象,它也可以被链接?在我的具体例子中,我返回一个MySQLi准备好的语句,我想我可以立即对它执行bind_参数?是的。请记住,在一个链中返回许多不同的对象可能会使您的API使用起来非常混乱。可能值得键入额外的行,而不是将链传输到另一个对象。