【发布时间】:2010-06-02 22:46:50
【问题描述】:
我见过其他这样做的对象:
$obj->method1()->method2();
我该怎么做?每个函数只是修改一个对象的指针还是返回一个指针?
我不知道这种风格的正确术语——如果有人能帮助我,那就太好了。
【问题讨论】:
标签: php object method-chaining
我见过其他这样做的对象:
$obj->method1()->method2();
我该怎么做?每个函数只是修改一个对象的指针还是返回一个指针?
我不知道这种风格的正确术语——如果有人能帮助我,那就太好了。
【问题讨论】:
标签: php object method-chaining
这是通过在每个函数的末尾返回$this 来实现的,从而给出一个可链接的引用。
class MyClass {
public function method1() {
//...
return $this;
}
public function method2() {
//...
return $this;
}
}
【讨论】:
流体界面。
只需将对象的 method1() 设置为返回 $this
【讨论】:
假设你有一个 Person 类。你会让你的方法做这样的事情:
public function setName($name)
{
$this->name = $name;
return $this; // We now return $this (the Person)
}
下载 Zend Framework 并检查部分代码 - 您可以从中学到很多东西。
【讨论】:
我将此称为方法链接。见http://www.devshed.com/c/a/PHP/Method-Chaining-in-PHP-5/1/
也在你的方法中
public function method1()
// do stuff
return $this;
}
【讨论】: