在 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()。


相关文章