Maison >développement back-end >tutoriel php >Comment instancier dynamiquement des classes en PHP sans utiliser eval() ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-20 12:42:111014parcourir

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()');

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");

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!

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