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 Folgendem Schema:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
wobei id der eindeutige Bezeichner, type der Objekttyp (z. B. foo, bar) und propertyVal ein Eigenschaftswert ist.
Die Aufgabe besteht darin, PHP zu erstellen Objekte der in der Typspalte definierten dynamischen Typen und füllen sie mit den Daten aus der entsprechenden Zeile in der Tabelle.
Die Lösung:
In PHP können Sie mithilfe der folgenden Syntax dynamisch ein Objekt eines bestimmten Typs erstellen:
$type = 'myClass'; $instance = new $type;
Angenommen, die Abfrage gibt ein assoziatives Array zurück, können Sie Eigenschaften zuweisen zum Objekt mit einem ähnlichen Syntax:
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; }
Dieser Ansatz ermöglicht es Ihnen Erstellen Sie dynamische Objekte aus einer Datenbank, 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!