可能重复:
PHP method chaining?
所以我记得在一些代码示例中看到在某个方法上调用方法,如:
$classname->method1()->method2();
您能否向我解释一下我们称之为什么,并举例说明其用法? 此外,如果您有关于此的教程或文章的链接会有所帮助。
我是面向对象PHP的新手。在你因为可能是一个愚蠢的问题而杀了我之前,要明白我不知道在Google上搜索什么,请帮忙...
答案 0 :(得分:2)
它被称为Method chaining。基本上,当函数或方法(在本例中为method1()
)返回一个对象并在此返回的对象上调用另一个方法时。
这种情况的典型用法是当方法返回对象本身时。这可能很有用,因为它使得在同一个对象上调用许多方法变得非常简单。您只需输入:
即可myobj.doSomething().doSomethingElse().jump();
一个突出的例子是JavaScript库jQuery,其中大多数方法都返回一个jQuery对象。
答案 1 :(得分:2)
它被称为method chaining,它只是在另一个方法返回的对象上调用方法的过程。
例如,method1
这里返回一个定义名为method2
的方法的类的实例,因此如果您不需要{{1}的引用,则可以立即调用该方法}} 回。它基本上等同于:
method1
当你有几个方法返回对它们被调用的实例的引用时,它特别有用。在这种情况下,而不是写这个:
$temp = $object->method1();
$temp->method2();
你可以这样写:
$object->method1();
$object->method2();
$object->method3();