如何在php中用单行调用两个方法?

时间:2015-07-23 10:46:40

标签: php laravel

我在larval中看到在单行示例中调用多个方法

 DB:: get ('test') ->toJson ();

我在该课程中有一个很酷的类和视图方法。

$this->call->view ('welcome') ->anotherMethod ();

我想再打一个方法吗?我应该在哪里制作这种方法?

1 个答案:

答案 0 :(得分:6)

DB::get()似乎是一个返回对象的方法,您可以在其中调用其他函数(我认为是数据库查询的结果对象)。如果要在一行中的一个对象上调用多个函数,则必须在函数中返回$this,例如:

class View {
    public static function factory {
        // The question is: How useful is this factory function. In fact: useless in
        // the current state, but it can be extended in any way
        return new self;
    }

    public function one() {
        // do something
        return $this;
    }

    public function two() {
        // do something
        return $this;
    }
}

然后你可以这样做:

$class = new View();
$class->one()->two();
// it's also possible to use the `factory` function
// you should think about, how useful this approach is in your application
$class = View::factory()->one()->two();

这就是你如何在php中完成它,如果laravel有一些帮助,我不能说:)