Viele Anwendungen speichern Informationen über Objekte in einer Datenbank. Das Problem ist: Wie stellt man diese Daten im PHP-Code dar? Object-Relational Mapping (ORM)-Frameworks können hilfreich sein, sie können jedoch komplex sein und sind möglicherweise nicht immer notwendig.
Diese Antwort stellt eine einfache Lösung dar, um PHP-Objekte dynamisch auf der Grundlage von in einer MySQL-Datenbank gespeicherten Zeichenfolgen zu erstellen.
Das Problem:
Gegeben sei eine MySQL-Tabelle mit dem folgenden Schema:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
wobei id der eindeutige Bezeichner und type der Objekttyp ist (z. B. foo, bar) und propertyVal ist ein Eigenschaftswert.
Die Aufgabe besteht darin, PHP-Objekte der in der Typspalte definierten dynamischen Typen zu erstellen und sie mit den Daten aus der entsprechenden Zeile in der Tabelle zu füllen .
Die Lösung:
In PHP können Sie ein Objekt eines bestimmten Typs dynamisch erstellen, indem Sie die folgende Syntax verwenden:
$type = 'myClass'; $instance = new $type;
Angenommen Wenn die Abfrage ein assoziatives Array zurückgibt, können Sie dem Objekt mithilfe einer ähnlichen Syntax Eigenschaften zuweisen:
foreach ($row as $property => $value) { $instance->$property = $value; }
Implementierung:
Beispiel :
$row = $result->fetch_assoc(); $type = $row['type']; unset($row['type']); $instance = new $type; foreach ($row as $property => $value) { $instance->$property = $value; }
Mit diesem Ansatz können Sie dynamische Objekte aus einer Datenbank erstellen, ohne dass komplexe ORM-Frameworks erforderlich sind. Es ist eine einfache und effektive Lösung für viele Szenarien, in denen Sie Datenbankdaten als dynamische Objekte in Ihrem PHP-Code darstellen müssen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch PHP-Objekte aus MySQL-Strings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!