除了“您不必更改名称”之外,保留PHP4样式的构造函数名称是否存在任何真正的问题:
ClassName($args)在PHP5?
发布于 2009-12-11 04:55:30
因为命名构造函数被保留在PHP5中只是为了向后兼容PHP4,所以在__construct()的较新版本中,它们更有可能被弃用,所以如果您正在编写您想要保持更长时间的东西,请记住这一点。
发布于 2009-12-11 05:02:30
如果您使用旧的样式构造函数名称,您将在类似以下的情况下造成一些混淆
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的人)可能不知道这样做,并且会发生微妙的中断。
发布于 2009-12-11 04:53:41
对于PHP5来说,保留它没有问题。但是,如果该类有一个__construct()函数,则将改为调用它。
https://stackoverflow.com/questions/1883913
复制相似问题