在有很多的API我有,我見過這樣的事情工作的:
$object->method()->anotherMethod();
從我讀過的關於OOP的教程,這是如何編寫類的,
<?php
class myClass {
public method() {
// do something
}
}
?>
什麼時候應該使用它,以及如何完成?道歉,但我是OOP的新手。
在有很多的API我有,我見過這樣的事情工作的:
$object->method()->anotherMethod();
從我讀過的關於OOP的教程,這是如何編寫類的,
<?php
class myClass {
public method() {
// do something
}
}
?>
什麼時候應該使用它,以及如何完成?道歉,但我是OOP的新手。
如果您的方法返回$ this,您將能夠使用上述樣式($object->method()->anotherMethod()
)。只有在您的方法不會返回其他內容的情況下才能執行此操作,例如一個名爲getSomething()
的方法預計會返回Something
,但是如果您有一個沒有相關值返回的方法,則可以返回$ this,從而允許方法調用鏈。
這叫做Method Call Chaining。關於何時應該使用它,並沒有硬性規定,但我使用的一般規則是,當有一系列對象方法經常被一個接一個地調用時,如初始化函數,方法鏈是有意義的。
該方法不是一個對象,它返回一個對象(通常與第一個對象相同),並在該對象上調用第二個方法 – Esailija
是否有可能使其返回另一個對象?例如,在我使用的API中,$ object中的方法與$ object-> method()中的不同。編輯:你可以使用'返回新類();'? – Jared
更多http://stackoverflow.com/search?q=method+chaining – Gordon