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

PHP 생성자와 소멸자

<시간/>

소개

객체지향 프로그래밍 용어에서 생성자는 객체 생성 시 자동으로 호출되는 클래스 내부에 정의된 메소드이다. 생성자 메서드의 목적은 객체를 초기화하는 것입니다. PHP에서 특별한 이름의 메소드 __construct 생성자 역할을 합니다.

구문

__construct ([ mixed $args = "" [, $... ]] ) : void

생성자 예제

이 예제는 객체가 선언될 때 생성자가 자동으로 실행됨을 보여줍니다.

예시

<?php
class myclass{
   function __construct(){
      echo "object initialized";
   }
}
$obj=new myclass();
?>

출력

그러면 다음과 같은 결과가 생성됩니다. -

object initialized

인수 생성자

클래스 속성은 인수가 있는 생성자에 의해 초기화됩니다.

예시

<?php
class rectangle{
   var $height;
   var $width;
   function __construct($arg1, $arg2){
      $this->height=$arg1;
      $this->width=$arg2;
   }
   function show(){
      echo "Height=$this->height Width=$this->width";
   }
}
$obj=new rectangle(10,20);
$obj->show();
?>

출력

그러면 다음과 같은 결과가 생성됩니다. -

Height=10 Width=20

상속의 생성자

상위 클래스에 생성자가 정의되어 있으면 parent::__construct에 의해 하위 클래스의 생성자 내에서 호출될 수 있습니다. . 그러나 자식 클래스가 생성자를 정의하지 않으면 기본 클래스와 동일한 것을 상속합니다.

예시

<?php
class a{
   function __construct(){
      echo "this is a constructor of base class\n";
   }
}
class b extends a{
   function __construct(){
      parent::__construct();
      echo "this a constructor class b\n";
   }
}
class c extends a {
   //
}
$a=new a();
$b=new b();
$c=new c();
?>

출력

그러면 다음과 같은 결과가 생성됩니다. -

this is a constructor of base class
this is a constructor of base class
this a constructor class b
this is a constructor of base class

소멸자

소멸자는 가비지 수집기가 특정 개체에 더 이상 참조가 없음을 확인하자마자 자동으로 메서드입니다. PHP에서 소멸자 메서드의 이름은 __destruct입니다. . 종료 시퀀스 동안에도 개체가 파괴됩니다. 소멸자 메서드는 인수를 사용하지 않으며 데이터 유형을 반환하지도 않습니다.

예시

<?php
class myclass{
   function __construct(){
      echo "object is initialized\n";
   }
   function __destruct(){
      echo "object is destroyed\n";
   }
}
$obj=new myclass();
?>

출력

다음 결과가 표시됩니다.

object is initialized
object is destroyed