Maison > base de données > tutoriel mysql > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-14 15:55:02
original
446 Les gens l'ont consulté

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 dans laquelle 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;
    Copier après la connexion
  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;
       }
    }
    Copier après la connexion

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;
   }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal