Instancier dynamiquement des objets PHP à partir de types de bases de données
En PHP, il est possible de créer dynamiquement un objet basé sur une chaîne spécifiant un type défini dans une table de base de données. Pour y parvenir, on peut utiliser la requête de base de données et les capacités de création d'objets dynamiques de PHP.
Considérons une table de base de données avec les colonnes et exemples de données suivants :
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
Supposons que nous ayons des types de données PHP. défini comme suit :
class ParentClass {...} class Foo extends ParentClass {private $id, $propertyVal; ...} class Bar extends ParentClass {private $id, $propertyVal; ...} // ...(more classes)...
Pour créer un objet d'un type défini par la colonne type de la base de données, nous pouvons exploiter les éléments suivants étapes :
Par exemple :
$result = mysqli_query($conn, "SELECT * FROM table WHERE id = 1"); $row = mysqli_fetch_assoc($result); $type = $row['type']; $instance = new $type; unset($row['type']); foreach ($row as $property => $value) { $instance->$property = $value; }
De cette manière, l'objet instance sera créé dynamiquement avec le type spécifié par la colonne de base de données de type et ses propriétés se verront attribuer les valeurs de la ligne sélectionnée.
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!