【问题标题】:Class Member Access on Instantiation实例化的类成员访问
【发布时间】:2014-05-18 09:46:16
【问题描述】:

在 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 才能拥有该选项?

【问题讨论】:

    标签: php function class instantiation language-features


    【解决方案1】:

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

    是的。您需要升级到 PHP 5.4 才能做到这一点。

    这实际上是 PHP 5.4 中引入的new feature.. 已添加实例化的类成员访问权限,例如(new Foo)->bar().


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

    解析错误:语法错误,意外的 T_OBJECT_OPERATOR,期待 ',' 或';'

    【讨论】:

    • 我知道这是 5.4 中实现的新功能,只是不确定是否有办法在此期间“伪造”它。谢谢!
    • 是的,但不能放在一个声明中.. :)
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多