我想知道php如何实现如下功能设计:
讲座> FUNC() - > FUNC()
这是laravel验证示例。
$validator->after(function($validator)
{
if ($this->somethingElseIsInvalid())
{
**$validator->errors()->add('field', 'Something is wrong with this field!');**
}
});
after()在这里做了神奇的工作吗?
如何创建我自己的代码,可以表现得像这样。
答案 0 :(得分:5)
称为方法链接。
方法链接起作用,因为类的函数或方法总是返回进一步调用另一个函数的对象。
基本上它会自行返回。
例如:
public function method1() {
// method content ...
return $this;
}
public function method2() {
// method content ...
return $this;
}
请参阅以下链接,详细了解Method Chaining,
http://www.techflirt.com/tutorials/oop-in-php/php-method-chaining.html
您可以找到更多关于此的文章。
答案 1 :(得分:3)
您需要返回要将下一个方法链接到的对象。
public function chain() {
return $this;
}
有时这将是当前的类($ this),根据适当的情况,这将是另一个类的实例。