在 PHP 中,使用 __construct() 代替类名作为构造函数有什么优势吗?
phpprogrammingserver side programming
是的,使用魔法函数 __construct() 代替类名有几个优势。这些优势列在下面 −
- 魔法函数 __construct 在 PHP 5.4 中引入。使用 __construct() 而不是 ClassName() 作为构造函数的一个优势是,如果您更改了类名,则无需更新构造函数,这符合 DRY(不要重复自己)的理念。
- 如果您有一个子类,您可以调用 parent::__construct() 来轻松地调用父类构造函数。
示例
<?php class myclass{ public function __construct(){ echo '类"',__CLASS__,'"已初始化!'。"
"; } } class childclass extends myclass{ public function __construct() { parent::__construct(); print "在子类构造函数中"; } } $myobj = new childclass(); ?>
输出
类"myclass"已初始化! 在子类构造函数中
注意
"__CLASS__"被称为魔法常量,在本例中,它返回调用它的类的名称。
旧式构造函数在 PHP 7.0 中已弃用,并将在未来版本中被移除。您应该在新代码中始终使用 __construct()。