5

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
4

3 回答 3

5

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

$obj = new CEntry( new Control() );
$obj->actuate();
于 2012-06-07T13:44:51.923 回答
1

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

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

它在 >= PHP 5.4 中执行

于 2012-06-07T13:45:01.003 回答
1

对于低于 5.4 的版本,您实际上可以通过使用括号来使用此技巧:

(new CEntry( new Control() ))->actuate();
于 2016-05-14T03:11:43.420 回答