__construct()在PHP中使用构造函数代替类的名称是否有任何优势?
示例(__construct):
class Foo {
function __construct(){
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
示例(命名):
class Foo {
function Foo(){
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
__construct从PHP 5开始,可以使用该方法(第一个示例).
从PHP版本4到版本7,可以使用与类相同的方法作为构造函数(第二个示例).
本主题扩展了什么时候/我应该在PHP中使用__construct(),__ get(),__ set()和__call()? 其中谈到了__construct,__get和__set魔术方法.
从PHP 5.3开始,有一个新的魔术方法叫做__invoke.__invoke当脚本尝试将对象作为函数调用时,将调用该方法.
现在我已经为这种方法做过研究,人们把它比作Java方法.run()- 参见Interface Runnable.
经过长时间的努力思考,我无法想到为什么你会打电话$obj(); 而不是$obj->function();
即使您在一个对象数组上进行迭代,您仍然可以知道要运行的主函数名称.
那么__invoke魔术方法的另一个例子是'因为你可以,并不意味着你应该'在PHP中使用快捷方式,或者是否有这种情况实际上是正确的做法?