可能重复:
PHP method chaining benefits?
PHP OOP: Method Chaining
有人可以告诉我为什么要使用 返回$ this; 在php类方法中, 我在一些方法类中看到过:
public function registerPrefix($prefix, $path)
{
if(isset($this->prefixes[$prefix])) {
$path = array_merge($this->prefixes[$prefix], (array) $path);
}
$this->prefixes[$prefix] = (array) $path;
return $this;
}
public function register()
{
spl_autoload_register(array($this, 'loadClass'));
return $this;
}
感谢
答案 0 :(得分:4)
因此方法调用是可链接的,例如
$myobj->registerPrefix("something", "something")->register();
如果从方法调用返回对象本身,则可以在方法的返回值上调用方法。
答案 1 :(得分:1)
这允许调用相同对象的多个方法,如下所示:
$object->registerPrefix(...)->register();
这允许创建流畅/可链接的接口。
答案 2 :(得分:1)
它允许链接方法调用,例如:
$ob->step1()->step2()->step3();
如同:
$ob->step1();
$ob->step2();
$ob->step3();
答案 3 :(得分:1)
通常使用return
使函数返回值。
具体来说,您使用return $this
来返回对象。
这有时用于方法链接:
$that = new ThisClass();
$that->does()->what()->ever();
前段时间是现代的。可能有帮助,但有限制:
$that->does()->what()->ever()->and()->how()->to()->handle()->errors()->and()->very_long()->chains()->question_mark()->exclamation_mark();
答案 4 :(得分:1)
此方法允许方法链接,例如:
$object->method1()->method2()->method3();
而不是:
$object->method1();
$object->method2();
$object->method3();
答案 5 :(得分:1)
$this
通常会返回以允许方法链接...这是一个很好的链接:
http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html
答案 6 :(得分:1)
当从对象上下文中调用方法时,伪变量$ this可用。 $ this是对调用对象的引用(通常是方法所属的对象,但如果从辅助对象的上下文中静态调用该方法,则可能是另一个对象)。您可以从PHP函数返回任何您想要的内容。 不必须是$ this。