对方法调用方法


Calling a Method on a method

可能重复:
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对象。