首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP5中的PHP4构造函数命名约定

PHP5中的PHP4构造函数命名约定
EN

Stack Overflow用户
提问于 2009-12-11 04:48:32
回答 6查看 3K关注 0票数 1

除了“您不必更改名称”之外,保留PHP4样式的构造函数名称是否存在任何真正的问题:

代码语言:javascript
复制
ClassName($args)

在PHP5?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-12-11 04:55:30

因为命名构造函数被保留在PHP5中只是为了向后兼容PHP4,所以在__construct()的较新版本中,它们更有可能被弃用,所以如果您正在编写您想要保持更长时间的东西,请记住这一点。

票数 9
EN

Stack Overflow用户

发布于 2009-12-11 05:02:30

如果您使用旧的样式构造函数名称,您将在类似以下的情况下造成一些混淆

代码语言:javascript
复制
class A
{
    public function A()
    {
    }
}

class B extends A
{
    public function B()
    {
        //how do/should I call the parent constructor?
        //parent::A(); ?
        //parent::__construct(); ?
    }
}

如果有人看到旧样式的构造函数并将其切换到较旧的样式构造函数,您可能会面临功能中断的风险。此外,如果你必须改变你的对象层次结构,让B扩展一个不同的类,你需要手动更改所有对parent::A()的调用,或者不熟悉“构造函数是一个带有类名的方法”结构的人(这意味着任何在过去5年中学习过PHP的人)可能不知道这样做,并且会发生微妙的中断。

票数 6
EN

Stack Overflow用户

发布于 2009-12-11 04:53:41

对于PHP5来说,保留它没有问题。但是,如果该类有一个__construct()函数,则将改为调用它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1883913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档