Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP의 자식 클래스에서 부모 생성자를 호출하는 방법은 무엇입니까?


자식 클래스에서 부모 생성자 메서드를 호출하는 동안 두 가지 경우에 직면하게 됩니다.

사례1

자식 클래스가 생성자를 정의하면 자식 클래스에서 부모 클래스 생성자를 직접 실행할 수 없습니다. 부모 생성자를 실행하기 위해서는 자식 생성자 내에서 parent::__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

설명

여기서 부모 클래스는 자식 클래스에서 우리가 자식 클래스에서 생성자 함수를 선언하지 않았기 때문에 암시적으로 호출됩니다.