2011-07-27 105 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();