후키라이브러리 – 5.생성자 및 소멸자

생성자(Constructor) 및 소멸자(Destructor) 체인

일반적인 객체지향언어에서 보면 클래스 객체를 생성할 때마다 생성자가 실행되는데 객체를 생성할 때에 먼저 부모클래스의 생성자를 호출한 후 자식클래스의 생성자를 호출합니다.

그러나 PHP3 또는 PHP4 스크립트에서는 마지막으로 파생된 클래스의 생성자만을 호출하고 그 이상의 부모클래스의 생성자는 실행하지 않고 종료합니다. PHP에서의 생성자 동작 원리는 좀 더 복잡합니다. 자세한 것은 메뉴 “핍클래스홈>>클래스 사용법>>생성자”를 참조하기 바랍니다.

따라서 클래스를 정의할 때는 연속된 생성자 실행(생성자 체인)을 위해 반드시 생성자를 정의하고 그 생성자 내에서 부모클래스에 대한 생성자를 호출할 필요가 있습니다.

반면 클래스 객체가 파괴될 때마다 클래스 소멸자가 실행되는데 프로그램은 먼저 자식클래스의 소멸자를 호출한 후 부모클래스의 소멸자를 호출합니다.

“후키라이브러리”를 이용하여 클래스를 정의하면 생성자 및 소멸자 체인을 자동으로 구현할 수 있습니다.

클래스 a를 이용하여 객체를 생성한다면 객체를 생성할 때 생성자 체인에 의해 c, b, a 생성자가 순서대로 실행되며, 현 문서가 종료되는 시점에서 소멸자 체인에 의해 _a, _b, _c 소멸자가 순서대로 실행됩니다.

소멸자는 문서가 종료되는 시점에서 수행되기 때문에 현 문서가 출력되는 페이지에서는 그 실행여부를 확인할 수 없습니다. 만약 소멸자의 실행여부를 확인하려면 소멸자 실행 내용을 파일 등에 기록한 후 다음 페이지에서 이 파일 내용을 확인하면 될 것입니다.

답글 남기기