相关疑难解决方法(0)

__construct()vs SameAsClassName()用于PHP中的构造函数

__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 constructor

68
推荐指数
7
解决办法
2万
查看次数

PHP 5.3 Magic Method __invoke

本主题扩展了什么时候/我应该在PHP中使用__construct(),__ get(),__ set()和__call()? 其中谈到了__construct,__get__set魔术方法.

从PHP 5.3开始,有一个新的魔术方法叫做__invoke.__invoke当脚本尝试将对象作为函数调用时,将调用该方法.

现在我已经为这种方法做过研究,人们把它比作Java方法.run()- 参见Interface Runnable.

经过长时间的努力思考,我无法想到为什么你会打电话$obj(); 而不是$obj->function();

即使您在一个对象数组上进行迭代,您仍然可以知道要运行的主函数名称.

那么__invoke魔术方法的另一个例子是'因为你可以,并不意味着你应该'在PHP中使用快捷方式,或者是否有这种情况实际上是正确的做法?

php oop magic-methods

27
推荐指数
4
解决办法
2万
查看次数

标签 统计

php ×2

constructor ×1

magic-methods ×1

oop ×1