Comment instancier dynamiquement des classes en PHP sans utiliser eval() ?

Linda Hamilton
Libérer: 2024-11-20 12:42:11
original
943 Les gens l'ont consulté

How to Dynamically Instantiate Classes in PHP without Using eval()?

Instancier des classes via des variables dynamiques en PHP

Instancier dynamiquement des classes à partir de noms de variables peut être une technique précieuse en PHP. Considérons le scénario suivant :

$var = 'bar';
$bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
Copier après la connexion

Comment pouvez-vous y parvenir sans recourir à la fonction très controversée eval(), que vous préférez éviter ?

Assignation de variables et Instanciation

La solution réside dans la création d'une variable contenant le nom de la classe, puis dans l'instanciation de la classe à l'aide de la variable $ opérateur :

$classname = $var . 'Class';

$bar = new $classname("xyz");
Copier après la connexion

Cette technique vous permet d'instancier dynamiquement des classes basées sur des valeurs de variables, ce qui peut s'avérer utile dans des modèles comme le modèle Factory.

Autres considérations

Pour approfondir ce sujet, reportez-vous à la documentation PHP sur les espaces de noms et les fonctionnalités du langage dynamique, qui fournit plus de contexte et d'exemples.

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