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

PHP에서 생성자에 대한 클래스 이름 대신 __construct()를 사용하면 어떤 이점이 있습니까?


예, 클래스 이름 대신 매직 함수 __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()를 사용해야 합니다.