Maison >base de données >tutoriel mysql >Comment créer dynamiquement des objets PHP à partir de chaînes dans une base de données ?

Comment créer dynamiquement des objets PHP à partir de chaînes dans une base de données ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-14 15:55:02522parcourir

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

Création dynamique d'objets PHP à partir de chaînes

Introduction :

En PHP, c'est possible pour créer dynamiquement des objets d'une classe spécifique sur la base d'une représentation sous forme de chaîne du nom de classe souhaité. Cette technique peut être particulièrement utile dans les scénarios où le type de classe n'est pas connu à l'avance ou déterminé par programme au moment de l'exécution.

Énoncé du problème :

Considérez une base de données MySQL où un La table stocke des informations sur les objets, y compris leur type et leurs propriétés. La tâche consiste à créer des objets PHP des types spécifiés à l'aide d'une seule requête et à attribuer les valeurs de propriété correspondantes à partir de la même ligne dans la base de données.

Solution :

À créez dynamiquement des objets PHP basés sur des chaînes dans une base de données, vous pouvez suivre ces étapes :

  1. Interroger la base de données : Récupérez la ligne représentant l'objet que vous souhaitez créer.
  2. Extractez la propriété type : Stockez la valeur de la colonne 'type' dans une variable.
  3. Créez l'objet : Utilisez la syntaxe PHP suivante pour créer une instance de l'objet spécifié class:

    $instance = new $type;
  4. Attribuer des valeurs de propriété : Parcourez les colonnes restantes de la ligne de la base de données et attribuez leurs valeurs aux propriétés correspondantes de l'objet nouvellement créé. Par exemple :

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

Exemple :

Considérez la table de base de données mentionnée dans le problème :

id type propertyVal
1 foo lorum
2 bar ipsum

En utilisant la solution décrite ci-dessus, le code PHP suivant pourrait être utilisé pour créer des objets :

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

Ceci le code créerait une instance de la classe 'foo' ou 'bar' en fonction de la valeur de la colonne 'type' et attribuerait la valeur 'propertyVal' à la propriété correspondante de l'objet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn