在 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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告