如何在 PHP 的子類中呼叫父建構函式?


在子類中呼叫父建構函式方法時,我們會遇到兩種情況。

情況 1

如果子類定義了一個建構函式,我們無法直接在子類中執行父類的建構函式。為了執行父類建構函式,在子類建構函式中需要呼叫 parent::__construct() 。

示例

 線上演示

<?php
   class grandpa{
      public function __construct(){
         echo "I am in Tutorials Point"."
";       }    }    class papa extends grandpa{       public function __construct(){          parent::__construct();          echo "I am not in Tutorials Point";       }    } $obj = new papa(); ?>
Output:
I am in Tutorials Point
I am not in Tutorials Point

說明

在上面的示例中,我們使用了 parent::__construct() 來呼叫父類的建構函式。

情況 2

如果子類沒有定義一個建構函式,它可以像普通類方法一樣從父類繼承(如果它不是被宣告為私有方法)。

示例

 線上演示

<?php
   class grandpa{
      public function __construct(){
         echo "I am in Tutorials point";
      }
   }
   class papa extends grandpa{
   }
   $obj = new papa();
?>

輸出

I am in Tutorials point

說明

此處,父類被隱式呼叫,因為在子類中我們沒有在子類中宣告任何建構函式函式。

更新於: 2020 年 6 月 29 日

4K+ 瀏覽量

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.