Mehrere PHP-Konstruktoren: Erkundung alternativer Ansätze
Die Einschränkungen von PHP bei mehreren Konstruktoren, die unterschiedliche Argumentsignaturen verwenden, stellen eine Herausforderung für Programmierer dar, die Objekte mit initialisieren möchten unterschiedliche Datenquellen. Um dieses Problem anzugehen, beschäftigen wir uns mit einem empfohlenen Ansatz, der statische Hilfsmethoden nutzt.
Anstatt mehrere __construct-Funktionen zu definieren, definieren wir einen Basiskonstruktor, der wesentliche Elemente initialisiert. Anschließend erstellen wir statische Methoden namens withID und withRow, die bestimmte Argumente annehmen und die Eigenschaften des Objekts intern mit Methoden wie LoadByID und Fill füllen.
Hier ist ein Beispiel:
class Student { public function __construct() { // Allocate common stuff } public static function withID(int $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(int $id) { // Perform database query and fill instance properties } protected function fill(array $row) { // Populate properties from array } }
Mit diesem Ansatz , Sie können Objekte basierend auf bestimmten Informationen initialisieren:
$student1 = Student::withID(123); $student2 = Student::withRow(['id' => 456, 'name' => 'John Doe']);
Diese Methode bietet eine strukturierte und flexible Möglichkeit, mehrere konstruktorartig zu verarbeiten Funktionalität, wodurch die Notwendigkeit übermäßig komplexer Konstruktoren vermieden wird
Das obige ist der detaillierte Inhalt vonWie simuliere ich mehrere Konstruktoren in PHP ohne mehrere „__construct'-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!