Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

จะเรียกตัวสร้างพาเรนต์ในคลาสลูกใน PHP ได้อย่างไร


เราจะเผชิญสองกรณีในขณะที่เรียกเมธอดตัวสร้างพาเรนต์ในคลาสย่อย

กรณีที่1

เราไม่สามารถเรียกใช้คอนสตรัคเตอร์คลาสหลักในคลาสย่อยได้โดยตรงหากคลาสย่อยกำหนดคอนสตรัคเตอร์ ในการรันตัวสร้างพาเรนต์ จำเป็นต้องมีการเรียกไปยังพาเรนต์::__construct() ภายในคอนสตรัคเตอร์ย่อย

ตัวอย่าง

<?php
   class grandpa{
      public function __construct(){
         echo "I am in Tutorials Point"."\n";
      }
   }
   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

คำอธิบาย

ที่นี่คลาสพาเรนต์ถูกเรียกโดยปริยายเพราะในคลาสลูกเราไม่ได้ประกาศฟังก์ชันคอนสตรัคเตอร์ในคลาสย่อย