php调用嵌套函数

时间:2016-09-15 06:39:32

标签: php function laravel

我想知道php如何实现如下功能设计:

讲座> FUNC() - > FUNC()

这是laravel验证示例。

    $validator->after(function($validator) 
    {
        if ($this->somethingElseIsInvalid()) 
        {
            **$validator->errors()->add('field', 'Something is wrong with this field!');**
        }
    });

after()在这里做了神奇的工作吗?

如何创建我自己的代码,可以表现得像这样。

2 个答案:

答案 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),根据适当的情况,这将是另一个类的实例。