为什么PHP 5使用__contruct()而不是className()作为构造函数?

Cli*_*ote 7 php oop

我为什么要使用function __construct()而不是function className()PHP 5?

Asa*_*aph 27

__魔术方法/函数似乎是PHP中的一致主题(一次!).使用__construct()over ClassName()作为构造函数的一个优点是,如果更改类的名称,则无需更新构造函数.

  • 无论你使用`_construct()`还是`className()`,`__autoload()`都能工作吗? (2认同)
  • @Click Upvote:`__ autoload()`没有实例化一个类,所以坦白地说它不关心你是否使用`__construct()`,`CLASSNAME()`,或完全忽略构造函数.所有`__autoload()`都是如果没有定义类,它会读取定义它的文件.你应该使用`new`关键字或其他什么. (2认同)
  • 严格地说,只要首次引用未定义的类或接口,就会调用"all __autoload()".由实现来决定确保定义被整理出来; 它也可以什么都不做,虽然这会打破合同. (2认同)

Tim*_*ter 2

我的猜测是,当面向对象的功能被添加到 PHP 中时,设计者们正在考虑 Python。

  • @Click Upvote 有趣的是,您选择了这个作为正确答案。它甚至没有从技术上回答你的问题“为什么我应该在 PHP 5 中使用 function __construct() 而不是 function className() ?” (5认同)