초기화


__construct() 메서드는 객체 생성 시 초기값 설정을 해주는 특수 메서드입니다. 또는 생성자 메서드라고도 부릅니다.

$obj = new members();

다음과 같이 클래스 인스턴스를 생성할 때 __construct() 메서드는 한 번 실행하게 됩니다. 이 메서드명은 미리 정의된 이름입니다.

__construct() 메서드를 사용하기 위해서는 클래스 내에 선언해야 합니다.

|문법|

class 클래스명
{
	function __construct()
	{
		// 부모의 초기값을 실행합니다.
		parent::__construct();

		// 개별 초기값을 설정합니다.
	}
}

클래스 상속의 경우 부모의 초기값 매직 메서드는 자동으로 실행되지 않습니다. 이런 경우 별도의 부모 초기값 매직 메서드를 추가해야 합니다.

예제 파일 class-12.php

<?php
	class BaseClass
	{
		function __construct()
		{
			echo "BaseClass 초기화<br>";
		}
	}

	class SubClass extends BaseClass
	{
		function __construct($a1,$a2,$a3)
		{
			// 부모의 초기화 메서드를 실행합니다.
			parent::__construct();

			// 초기화 메서드를 실행합니다.
			echo "SubClass 초기화<br>";

			// 입력 매개변수를 확인합니다.
			echo "초기화 매개변수 a1 = ".$a1."<br>";
			echo "초기화 매개변수 a2 = ".$a2."<br>";
			echo "초기화 매개변수 a3 = ".$a3."<br>";
		}

		public function show()
		{
			echo "hello world! <br>";
		}
	}

	// 인스턴스 생성 시 초기화 매개변수를 같이 전달합니다.
	$obj = new SubClass("인자1","인자2","인자3");
	$obj->show();

?>

결과

BaseClass 초기화
SubClass 초기화
초기화 매개변수 a1 = 인자1
초기화 매개변수 a2 = 인자2
초기화 매개변수 a3 = 인자3
hello world! 

위의 예제는 상속받은 클래스의 인스턴스를 생성합니다. 인스턴스 생성 시 초기 매개변수 값과 초기화 매직 메서드를 실행합니다.

생성자는 항상 코드를 종속적으로 만들게 된다

생성패턴은 객체의 생성자를 보완하게 하는 패턴들의 모임입니다.