所以我记得在一些代码示例看到某处等的方法调用的方法:
$classname->method1()->method2();
您能否向我解释我们称之为什么,并举例说明其用法? 另外,如果你有一个教程或文章的链接将有所帮助。
我是面向对象的PHP的新手。并且在你杀了我之前,可能是一个愚蠢的问题,明白我不知道在Google上搜索什么,请帮助...
所以我记得在一些代码示例看到某处等的方法调用的方法:
$classname->method1()->method2();
您能否向我解释我们称之为什么,并举例说明其用法? 另外,如果你有一个教程或文章的链接将有所帮助。
我是面向对象的PHP的新手。并且在你杀了我之前,可能是一个愚蠢的问题,明白我不知道在Google上搜索什么,请帮助...
它被称为method chaining,它只是对由另一个方法返回的对象调用方法的过程。
例如,method1
这里返回定义称为method2
方法,因此该方法可以被调用立即如果您不需要引用本身method1
返回某个类的一个实例。它本质上是相同的:
$temp = $object->method1();
$temp->method2();
当你有几种方法返回他们呼吁实例引用这是特别有用。在这种情况下,而不是写这个:
$object->method1();
$object->method2();
$object->method3();
,你可以这样写:
$object->method1()->method2()->method3();
嘿感谢mil解释,已经在我的代码中使用这个。 – 2012-01-07 23:14:55
它叫做Method chaining。基本上,当一个函数或方法(在这种情况下为method1()
)返回一个对象并且您在此返回的对象上调用另一个方法时。
这是一个典型的用法,当一个方法返回对象本身。这可能很有用,因为它使得调用同一对象上的很多方法非常简单。你可以只输入:这个
myobj.doSomething().doSomethingElse().jump();
一个突出的例子是JavaScript库jQuery其中大多数方法返回一个jQuery对象。
嘿,谢谢你,已经在我的代码中使用了这个。虽然使用“ - >”而不是“。”,因为它的php – 2012-01-07 23:16:00
方法链接..教程这里http://en.wikipedia.org/wiki/Method_chaining – Esailija 2012-01-07 22:58:31
非常感谢你很多 – 2012-01-07 22:58:50
你的意思是[像这样](http://codepad.org/AusqEWlS)? – 2012-01-07 22:59:59