Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 클래스 이름 대신 __construct()를 사용해야 하는 이유와 장점

__construct()를 사용하는 것이 더 나은 이유

PHP에서는 매직 메서드(magic method)인 __construct()를 사용하는 것이 클래스 이름으로 된 구식 생성자보다 여러 면에서 유리합니다. 주요 장점은 다음과 같습니다.

  • DRY 원칙 준수(Don't Repeat Yourself): __construct()는 PHP 5부터 도입된 매직 메서드입니다. 클래스 이름을 직접 사용한 생성자와 달리, 클래스의 이름이 변경되더라도 생성자 코드를 수정할 필요가 없습니다. 즉, 코드 중복을 피하고 유지보수성을 높일 수 있습니다.
  • 부모 클래스 생성자 호출이 간편: 자식 클래스에서 parent::__construct()를 호출하면 부모 클래스의 생성자를 쉽고 명확하게 실행할 수 있습니다.

예제 코드

<?php
    class myclass{
        public function __construct(){
            echo 'The class "', __CLASS__, '" was initiated!'."\n";
        }
    }
    class childclass extends myclass{
        public function __construct() {
            parent::__construct();
            print "In SubClass constructor ";
        }
    }
    $myobj = new childclass();
?>

실행 결과

The class "myclass" was initiated!
In SubClass constructor

참고: __CLASS__ 매직 상수

위 예제에서 사용된 __CLASS__는 소위 매직 상수(magic constant)라고 불리는 특수 상수입니다. 이 상수는 호출된 위치 기준으로 해당 클래스의 이름을 문자열로 반환합니다.

주의사항: 구식 생성자는 폐기 예정

클래스 이름과 동일한 함수명으로 정의하는 구식(old style) 생성자 방식은 PHP 7.0부터 공식적으로 지원 중단(deprecated)되었으며, 향후 버전에서 완전히 제거될 예정입니다. 따라서 새로운 코드를 작성할 때는 반드시 __construct()를 사용하는 것이 좋습니다.