实例化的类成员访问


Class Member Access on Instantiation

在PHP 5.4中,我相信这样的东西是有效的:

echo ( new DateTime( '2014-04-05 10:36am' ))->format( 'Y-m-d g:ia' );

在 PHP 5.3 上,我目前做这样的事情:

$date = new DateTime( '2014-04-05 10:36am' );
echo $date->format( 'Y-m-d g:ia' );

有什么方法可以在 PHP 5.3 中将这两行合并为一行(我的意思不是连接这些行)? 还是我必须升级到>=5.4 才能获得该选项?

我是否必须升级到>=5.4 才能获得该选项?

是的。您需要升级到 PHP 5.4 才能执行此操作。

这实际上是PHP 5.4上引入的新功能添加了实例化的类成员访问,例如(new Foo)->bar()。


如果您尝试在低于 5.4 的 PHP 版本上执行此操作,则会遇到此错误。

解析错误:语法错误、意外T_OBJECT_OPERATOR、预期为"," 或";"