在PHP中使用__construct()代替构造函数的类名称有什么好处?

是的,使用魔术函数__construct()代替类的名称有许多优点。这些在下面列出-

  • 魔术函数__construct在PHP 5.4中引入。使用__construct()ClassName()作为构造函数的一个好处是,如果您更改类的名称,则无需更新支持DRY(不要重复自己)概念的构造函数。

  • 如果您有子类,则可以调用parent::__ construct()轻松地调用父构造函数。

示例

<?php
   class myclass{
      public function __construct(){
         echo 'The class "', __CLASS__, '" was initiated!'."\n";
      }
   }
   class childclass extends myclass{
      public function __construct() {
         parent::__construct();
         print "In SubClass constructor ";
      }
   }
   $myobj = new childclass();
?>

输出结果

The class "myclass" was initiated!
In SubClass constructor

注意

“ __CLASS__”是所谓的魔术常数,在这种情况下,它返回在其中调用它的类的名称。

旧样式的构造函数在PHP 7.0中已弃用,并将在以后的版本中删除。您应该始终在新代码中使用__construct()。