2012-01-07 54 views
2

可能重复:
PHP method chaining?上的一个方法调用方法

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

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

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

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

+1

方法链接..教程这里http://en.wikipedia.org/wiki/Method_chaining – Esailija 2012-01-07 22:58:31

+0

非常感谢你很多 – 2012-01-07 22:58:50

+0

你的意思是[像这样](http://codepad.org/AusqEWlS)? – 2012-01-07 22:59:59

回答

2

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

例如,method1这里返回定义称为method2方法,因此该方法可以被调用立即如果您不需要引用本身method1返回某个类的一个实例。它本质上是相同的:

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

当你有几种方法返回他们呼吁实例引用这是特别有用。在这种情况下,而不是写这个:

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

,你可以这样写:

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

嘿感谢mil解释,已经在我的代码中使用这个。 – 2012-01-07 23:14:55

2

它叫做Method chaining。基本上,当一个函数或方法(在这种情况下为method1())返回一个对象并且您在此返回的对象上调用另一个方法时。

这是一个典型的用法,当一个方法返回对象本身。这可能很有用,因为它使得调用同一对象上的很多方法非常简单。你可以只输入:这个

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

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

+0

嘿,谢谢你,已经在我的代码中使用了这个。虽然使用“ - >”而不是“。”,因为它的php – 2012-01-07 23:16:00