在 PHP 中,使用 `__construct()` 作为构造函数而不是类名有什么优势?


是的,使用魔法函数 `__construct()` 而不是类名作为构造函数有几个优势。这些优势列在下面:

  • 魔法函数 `__construct` 在 PHP 5.4 中引入。使用 `__construct()` 而不是 `ClassName()` 作为构造函数的一个优势是,如果更改了类的名称,则无需更新构造函数,这支持 DRY(不要重复自己)的概念。
  • 如果您有一个子类,您可以调用 `parent::__construct()` 以简单的方式调用父构造函数。

示例

 实时演示

<?php
   class myclass{
      public function __construct(){
         echo 'The class "', __CLASS__, '" was initiated!'."
";       }    }    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()`。

更新于: 2020年6月29日

373 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告