2012-05-27 19 views
0

可能重複:
PHP method chaining?方法爲對象 - 如何/時

在有很多的API我有,我見過這樣的事情工作的:

$object->method()->anotherMethod(); 

從我讀過的關於OOP的教程,這是如何編寫類的,

<?php 
class myClass { 
    public method() { 
     // do something 
    } 
} 
?> 

什麼時候應該使用它,以及如何完成?道歉,但我是OOP的新手。

+1

該方法不是一個對象,它返回一個對象(通常與第一個對象相同),並在該對象上調用第二個方法 – Esailija

+0

是否有可能使其返回另一個對象?例如,在我使用的API中,$ object中的方法與$ object-> method()中的不同。編輯:你可以使用'返回新類();'? – Jared

+0

更多http://stackoverflow.com/search?q=method+chaining – Gordon

回答

4

如果您的方法返回$ this,您將能夠使用上述樣式($object->method()->anotherMethod())。只有在您的方法不會返回其他內容的情況下才能執行此操作,例如一個名爲getSomething()的方法預計會返回Something,但是如果您有一個沒有相關值返回的方法,則可以返回$ this,從而允許方法調用鏈。

3

這叫做Method Call Chaining。關於何時應該使用它,並沒有硬性規定,但我使用的一般規則是,當有一系列對象方法經常被一個接一個地調用時,如初始化函數,方法鏈是有意義的。

相關問題