Modèles de constructeurs multiples en PHP
En PHP, définir de nombreux constructeurs avec des signatures de paramètres distinctes au sein de la même classe n'est pas réalisable. Ce défi se pose lorsque l'on cherche à initialiser différentes variables d'instance en fonction du constructeur utilisé.
Solution :
Une technique couramment utilisée consiste à utiliser des méthodes d'assistance statiques aux côtés d'un constructeur par défaut. Voici un exemple d'implémentation :
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 } }
Utilisation :
En fonction des données disponibles, vous pouvez instancier un objet Student à l'aide de la méthode d'assistance appropriée :
Si la pièce d'identité est connu :
$student = Student::withID($id);
Si un tableau contenant des informations sur les lignes de la base de données est disponible :
$student = Student::withRow($row);
Avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!