PHP의 다중 생성자 패턴
PHP에서는 동일한 클래스 내에서 서로 다른 매개변수 서명을 사용하여 수많은 생성자를 정의하는 것이 불가능합니다. 이 문제는 사용된 생성자를 기반으로 다양한 인스턴스 변수를 초기화하려고 할 때 발생합니다.
해결책:
일반적으로 사용되는 기술에는 기본 생성자와 함께 정적 도우미 메서드를 활용하는 것이 포함됩니다. 구현 예는 다음과 같습니다.
class Student { public function __construct() { // Allocate necessary resources } public static function withID($id) { $instance = new self(); $instance->loadByID($id); return $instance; } public static function withRow(array $row) { $instance = new self(); $instance->fill($row); return $instance; } protected function loadByID($id) { // Perform database query $row = my_db_access_stuff($id); $this->fill($row); } protected function fill(array $row) { // Populate all properties based on the provided array } }
사용법:
사용 가능한 데이터에 따라 적절한 도우미 메서드를 사용하여 Student 개체를 인스턴스화할 수 있습니다.
ID가 다음과 같은 경우 알려진:
$student = Student::withID($id);
데이터베이스 행 정보가 포함된 배열을 사용할 수 있는 경우:
$student = Student::withRow($row);
이점:
위 내용은 여러 생성자를 사용할 때 PHP에서 다양한 인스턴스 변수를 어떻게 초기화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!