예, 클래스 이름 대신 매직 함수 __construct()를 사용하면 몇 가지 이점이 있습니다. 그것들은 아래에 나열되어 있습니다 -
- 매직 함수 __construct는 PHP 5.4에 도입되었습니다. ClassName()보다 __construct()를 생성자로 사용하는 것의 한 가지 이점은 클래스 이름을 변경하면 DRY(자신을 반복하지 않음) 개념을 지원하는 생성자를 업데이트할 필요가 없다는 것입니다.
- 자식 클래스가 있는 경우 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__"는 마법 상수라고 하며, 이 경우 호출된 클래스의 이름을 반환합니다.
이전 스타일 생성자는 PHP 7.0에서 더 이상 사용되지 않으며 향후 버전에서 제거됩니다. 새 코드에서는 항상 __construct()를 사용해야 합니다.