在方法上调用方法

时间:2012-01-07 22:56:58

标签: php

  

可能重复:
  PHP method chaining?

所以我记得在一些代码示例中看到在某个方法上调用方法,如:

$classname->method1()->method2();

您能否向我解释一下我们称之为什么,并举例说明其用法? 此外,如果您有关于此的教程或文章的链接会有所帮助。

我是面向对象PHP的新手。在你因为可能是一个愚蠢的问题而杀了我之前,要明白我不知道在Google上搜索什么,请帮忙...

2 个答案:

答案 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();