php – 为什么构造函数链中需要括号?

为什么使用新关键字的表达式需要括号才能用于链接执行?例如,在AS3中,不需要括号.在 PHP中,这是口译员的文体辅助,还是有更大的理由,我不知道?是执行优先级的顺序吗?

PHP中的构造函数链

感谢这个问题Chaining a constructor with an object function call in PHP我想出了如何…

对象定义

另外:显然,魔术方法__construct总是隐式地返回$this,如果你明确地返回$this(或任何事情),就不会发生任何错误/警告/异常.

class Chihuahua
{
    private $food;

    function __construct( $food )
    {
        $this->food = $food;
    }

    function burp()
    {
        echo "$this->food burp!";
    }
}

作品

(new Chihuahua('cake'))->burp();

不行(但我希望它)

new Chihuahua('cake')->burp();
我相信这是因为翻译解析成这个,
new (Chihuahua('cake')->burp());

代替,

(new Chihuahua('cake'))->burp();

因为>具有比新操作者更高的偏好.

并给你一个错误,因为这个,

Chihuahua('cake')->burp()

不明白希望有帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何选择合适的 C++ Web 开发框架?
利用 C++ 框架构建高并发 Web 应用的策略
用 C++ 框架开发跨平台图形应用程序
golang框架中安全编码实践的最佳指南是什么?
golang框架与其他语言框架在设计理念上的区别有哪些?
C++ 图形框架与其他语言框架的比较
C++ 框架与其他 Web 开发框架的对比分析
使用 C++ 框架构建大型项目最佳实践
C++ 框架如何提高大型项目开发效率
C++ 框架中依赖注入的持续集成与部署工具
如何与社区协作和贡献到自定义 Golang 框架?
C++ 框架在大型项目中如何实现模块化开发
使用 C++ 框架开发跨平台 Web 应用
C++ 框架在大型项目中的优缺点
golang框架在性能上的优势体现在哪些方面?
C++ 框架在嵌入式系统内存优化中的优势
golang框架在人工智能与机器学习中的作用
如何扩展 Golang 框架以支持特定功能?
如何利用 Go Modules 和依赖项管理来自定义 Golang 框架?
Golang 框架中的性能优化技巧