Dynamisches Instanziieren von PHP-Objekten aus Datenbanktypen
In PHP ist es möglich, ein Objekt basierend auf einer Zeichenfolge, die einen definierten Typ angibt, dynamisch zu erstellen in einer Datenbanktabelle. Um dies zu erreichen, kann man die Datenbankabfrage und die PHP-Funktionen zur dynamischen Objekterstellung nutzen.
Stellen Sie sich eine Datenbanktabelle mit den folgenden Spalten und Beispieldaten vor:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
Angenommen, wir haben PHP-Datentypen wie folgt definiert:
class ParentClass {...} class Foo extends ParentClass {private $id, $propertyVal; ...} class Bar extends ParentClass {private $id, $propertyVal; ...} // ...(more classes)...
Um ein Objekt eines Typs zu erstellen, der durch die Typspalte der Datenbank definiert wird, können wir Folgendes nutzen Schritte:
Zum Beispiel:
$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; }
Auf diese Weise wird das Instanzobjekt dynamisch mit dem in der Typdatenbankspalte angegebenen Typ erstellt und seinen Eigenschaften werden die Werte aus der ausgewählten Zeile zugewiesen.
Das obige ist der detaillierte Inhalt vonWie instanziiere ich PHP-Objekte dynamisch basierend auf Datenbanktypen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!