Heim >Datenbank >MySQL-Tutorial >Wie instanziiere ich PHP-Objekte dynamisch basierend auf Datenbanktypen?

Wie instanziiere ich PHP-Objekte dynamisch basierend auf Datenbanktypen?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 15:19:11711Durchsuche

How to Dynamically Instantiate PHP Objects Based on Database Types?

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:

  • Führen Sie eine Abfrage aus, die eine Zeile mit der gewünschten ID auswählt.
  • Verwenden Sie mysql_fetch_object(), um die Daten als assoziatives Array abzurufen.
  • Erhalten Sie die Geben Sie einen Wert aus dem assoziativen Array ein.
  • Erstellen Sie dynamisch ein Objekt dieses Typs mit die Syntax: $instance = new $type;.
  • Weisen Sie die restlichen Eigenschaften des Objekts aus dem assoziativen Array zu.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn