为什么php的一行代码中会有多个对象操作符?


why would there be more than one object operator in a line of code in php?

我是一个新手,想要了解操作符语法。我知道它被称为对象操作符我知道它是如何使用的(我们在哪里使用对象操作符&>& &;;

我想知道当它们像这个片段一样串在一起时的目的是什么(例如:开关($ this ->请求->参数(id)):

下面是一个使用Kohana的网站的代码片段:

public function action_list()
{
    $connections = ORM::factory('Connection')
        ->with('property')
        ->with('inviter');
    switch ($this->request->param('id')) {
    // more code...
        }
    }

这叫做"方法链接"。它允许你应用不止一个方法,因此在一次调用中做不止一件事。它在某种程度上相当于嵌套函数。

这通常被称为链接。当一个方法返回一个对象时,您可以在该返回的对象上调用另一个方法。考虑如下内容:

class A {
    public $numbers = 0;
    public function addNumber($num) {
        $this->numbers += $num;
        return $this;
    }
}
$a = new A();
$a->addNumber(1)->addNumber(2);

addNumber返回自身的一个实例,所以你可以反复调用addNumber。

通常情况下,一个方法将返回另一个对象的实例,但同样的原则适用。