PHP에서는 클래스 이름과 메서드 이름이 동일할 수 있습니다. 메서드 이름과 클래스 이름이 동일하고 "__construct"가 없으면 해당 메서드가 생성자로 간주됩니다. PHP 생성자는 클래스의 특수 함수입니다. new 연산자를 사용하여 클래스의 인스턴스를 생성하면 생성자가 자동으로 호출됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
Constructor
__construct ( mixed ...$values = "" ) : void
PHP를 사용하면 개발자가 메서드를 클래스의 생성자로 정의할 수 있습니다. 생성자가 있는 클래스는 새 객체가 생성될 때마다 이 메서드를 호출하므로 객체를 사용하기 전에 일부 초기화 작업을 수행하는 데 매우 적합합니다.
참고: 생성자가 하위 클래스에 정의된 경우 해당 상위 클래스의 생성자는 암시적으로 호출되지 않습니다. 상위 클래스의 생성자를 실행하려면 하위 클래스의 생성자에서 parent::__construct()를 호출해야 합니다. 하위 클래스가 생성자를 정의하지 않으면 일반 클래스 메서드와 마찬가지로 상위 클래스에서 상속됩니다(private으로 정의되지 않은 경우).
예제 #1 상속의 생성자
<?php class BaseClass { function __construct() { print "In BaseClass constructor\n"; } } class SubClass extends BaseClass { function __construct() { parent::__construct(); print "In SubClass constructor\n"; } } class OtherSubClass extends BaseClass { // 继承 BaseClass 的构造函数 } // In BaseClass constructor $obj = new BaseClass(); // In BaseClass constructor // In SubClass constructor $obj = new SubClass(); // In BaseClass constructor $obj = new OtherSubClass(); ?>
다른 메서드와 달리, PHP는 __construct()가 상위 클래스 __construct()와 다른 매개 변수를 가진 메서드로 재정의될 때 E_STRICT 오류 메시지를 생성하지 않습니다.
PHP 5.3.3부터 네임스페이스에서 클래스 이름과 동일한 이름을 가진 메서드는 더 이상 생성자로 사용되지 않습니다. 네임스페이스에 없는 클래스는 영향을 받지 않습니다. 생성자는 해당 객체가 인스턴스화될 때 자동으로 호출되는 일반적인 메서드입니다. 따라서 필수이거나 유형이 있거나 기본값을 가질 수 있는 매개변수를 원하는 수만큼 정의할 수 있습니다. 생성자의 매개변수는 클래스 이름 뒤에 괄호 안에 표시됩니다.
예제 #2 생성자 매개변수 사용
<?php class Point { protected int $x; protected int $y; public function __construct(int $x, int $y = 0) { $this->x = $x; $this->y = $y; } } // 两个参数都传入 $p1 = new Point(4, 5); // 仅传入必填的参数。 $y 会默认取值 0。 $p2 = new Point(4); // 使用命名参数(PHP 8.0 起): $p3 = new Point(y: 5, x: 4); ?>
클래스에 생성자가 없고 생성자의 매개변수가 필요하지 않은 경우 괄호를 생략할 수 있습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP의 클래스 이름과 동일한 방법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!