【问题标题】:Calling a Method on a method [duplicate]在方法上调用方法[重复]
【发布时间】:2012-02-05 03:00:29
【问题描述】:

可能重复:
PHP method chaining?

所以我记得在一些代码示例中看到某处调用方法的方法如下:

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

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

我是面向对象 PHP 的新手。在你问我一个愚蠢的问题之前,请理解我不知道在 Google 上搜索什么,请帮助...

【问题讨论】:

  • 方法链..教程在这里en.wikipedia.org/wiki/Method_chaining
  • 你的意思是like this
  • 嘿对不起蒂姆,我不知道要搜索什么,这就是我发布问题的原因
  • 嘿 Joshua 别担心,当你不知道它叫什么的时候很难搜索它!现在,下一个搜索“在方法上调用方法”的人最终将被定向到副本。

标签: php


【解决方案1】:

它叫做Method chaining。基本上是当一个函数或方法(在本例中为 method1())返回一个对象,然后您在这个返回的对象上调用另一个方法。

this 的典型用法是方法返回对象本身。这很有用,因为它使得在同一个对象上调用许多方法变得非常简单。您只需输入:

myobj.doSomething().doSomethingElse().jump();

其中一个突出的例子是 JavaScript 库 jQuery,其中大多数方法返回一个 jQuery 对象。

【讨论】:

  • 嘿,谢谢你,已经在我的代码中使用了它。虽然使用“->”而不是“.”,因为它的 php
【解决方案2】:

它被称为method chaining,它只是在另一个方法返回的对象上调用一个方法的过程。

例如,method1 此处返回某个类的实例,该实例定义了一个名为 method2 的方法,因此如果您不需要 method1 返回的引用本身,则可以立即调用该方法。它本质上等同于:

$temp = $object->method1();
$temp->method2();

当您有多个方法返回对它们被调用的实例的引用时,它特别有用。在这种情况下,而不是这样写:

$object->method1();
$object->method2();
$object->method3();

你可以这样写:

$object->method1()->method2()->method3();

【讨论】:

  • 嘿,谢谢你的解释,已经在我的代码中使用了这个。
猜你喜欢
  • 2016-03-31
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多