函数按顺序调用

Gow*_*wri 2 php oop function object magento

这个东西怎么样?

$对象 - > foo1() - > foo2的() - > foo3();

我在Magento php框架中工作.在Magento中,函数被称为序列.但是,我不明白它是如何工作的.任何人都可以解释.

Pol*_*ial 5

$object->foo1()->foo2()->foo3();
Run Code Online (Sandbox Code Playgroud)

首先,PHP将从变量中获取指向该foo1方法的指针$object.它调用此方法,然后返回另一个对象.第二个对象(我们将称之为$object2)有一个方法foo2(),也称为.foo2()返回另一个object($object3),它有一个方法foo3(),返回它喜欢的任何东西.

在某些情况下,$object,$object2$object3仅会指向同一个对象.这意味着您可以按顺序在同一个类上调用方法.

你可以很容易地做到这一点:

class Foo
{
    public function nicely()
    {
        return $this;
    }

    public function formatted()
    {
        return $this;
    }

    public function chained()
    {
        return $this;
    }

    public function calls()
    {
        return $this;
    }
}

$foo = new Foo();
$foo->nicely()->formatted()->chained()->calls();
Run Code Online (Sandbox Code Playgroud)