Heim  >  Artikel  >  Datenbank  >  Wie erstelle ich dynamisch PHP-Objekte aus Zeichenfolgen in einer Datenbank?

Wie erstelle ich dynamisch PHP-Objekte aus Zeichenfolgen in einer Datenbank?

Barbara Streisand
Barbara StreisandOriginal
2024-11-14 15:55:02448Durchsuche

How to dynamically create PHP objects from strings in a database?

Dynamisches Erstellen von PHP-Objekten aus Strings

Einführung:

In PHP ist es möglich um Objekte einer bestimmten Klasse dynamisch basierend auf einer Zeichenfolgendarstellung des gewünschten Klassennamens zu erstellen. Diese Technik kann besonders in Szenarien nützlich sein, in denen der Klassentyp nicht im Voraus bekannt ist oder zur Laufzeit nicht programmgesteuert bestimmt wird.

Problemstellung:

Stellen Sie sich eine MySQL-Datenbank vor, bei der a Die Tabelle speichert Informationen über Objekte, einschließlich deren Typ und Eigenschaften. Die Aufgabe besteht darin, mit einer einzigen Abfrage PHP-Objekte der angegebenen Typen zu erstellen und die entsprechenden Eigenschaftswerte aus derselben Zeile in der Datenbank zuzuweisen.

Lösung:

An Um PHP-Objekte basierend auf Zeichenfolgen in einer Datenbank dynamisch zu erstellen, können Sie die folgenden Schritte ausführen:

  1. Datenbank abfragen: Rufen Sie die Zeile ab, die das Objekt darstellt, das Sie erstellen möchten.
  2. Extrahieren Sie die Typeigenschaft:Speichern Sie den Wert der Spalte „Typ“ in einer Variablen.
  3. Erstellen Sie das Objekt:Verwenden Sie das folgende PHP Syntax zum Erstellen einer Instanz der angegebenen Klasse:

    $instance = new $type;
  4. Eigenschaftswerte zuweisen: Iterieren Sie über die verbleibenden Spalten in der Datenbankzeile und weisen Sie deren Werte zu entsprechende Eigenschaften des neu erstellten Objekts. Zum Beispiel:

    foreach ($row as $key => $value) {
       if ($key != 'type') {
          $instance->$key = $value;
       }
    }

Beispiel:

Betrachten Sie die im Problem erwähnte Datenbanktabelle:

id type propertyVal
1 foo lorum
2 bar ipsum

Mit der oben beschriebenen Lösung könnte der folgende PHP-Code zum Erstellen von Objekten verwendet werden:

$row = fetchRowFromDatabase();
$type = $row['type'];
$instance = new $type;
foreach ($row as $key => $value) {
   if ($key != 'type') {
      $instance->$key = $value;
   }
}

Dieser Code würde eine Instanz der Klasse „foo“ oder „bar“ basierend auf dem Wert im „type“ erstellen ' Spalte und weisen Sie den Wert „propertyVal“ der entsprechenden Eigenschaft des Objekts zu.

Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch PHP-Objekte aus Zeichenfolgen in einer Datenbank?. 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