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