新的后直接调用方法?

时间:2012-06-07 13:43:51

标签: php

PHP是否允许从这样的新对象调用方法:

new CEntry( new Control() )->actuate();

我可以将新对象作为参数传递,如new Control()中所示。但是,它似乎不喜欢actuate()调用。

我收到错误:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/foo/public_html/develop/foos/source/class.CEntry.php on line 4

3 个答案:

答案 0 :(得分:5)

直到PHP 5.4,没有。在PHP 5.3及更早版本中,您将不得不使用另一个变量:

$obj = new CEntry( new Control() );
$obj->actuate();

答案 1 :(得分:1)

  

PHP是否允许从这样的新对象调用方法:

new CEntry( new Control() )->actuate();

它在> = PHP 5.4

答案 2 :(得分:1)

对于小于5.4的版本,您可以使用括号实际使用此技巧:

(new CEntry( new Control() ))->actuate();
相关问题