如何在 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.