2011-07-27 136 views
0

可能重複:
PHP: How to chain method on a newly created object?爲什麼這不是有效的PHP?

我開始了與此代碼:

$page = new Page(); 

$page->replace_tags(...); 

$page->output(); 

我改變了簽名replace_tags允許方法鏈接,通過返回$this。爲什麼我還不能這樣寫呢?

new Page()->replace_tags(...)->output(); 

或者這樣:

(new Page())->replace_tags(...)->output(); 
+0

你需要爲你的實例賦值爲be前調用其方法 – Ben

+0

@Ben:爲什麼?我不能將它用作表達式嗎? – Eric

+3

看到我上面鏈接的問題,這是PHP語法的限制。你不能將呼叫鏈接到「新」。 – Palantir

回答

0

您需要首先將對象分配給一個參考:

$obj = new Page(); 
$obj->replace_tags(...)->output(); 
1

我想你可能需要鏈上的類實例的功能:

$page = new Page(); 

$page->replace_tags(...)->output();