En PHP, vous pouvez rencontrer un scénario dans lequel vous devez instancier une classe à partir de la valeur d'une variable. Illustrons cela avec un exemple :
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
Cette méthode tente de créer une instance de la classe spécifiée par la variable $var. Cependant, PHP ne prend pas en charge cette syntaxe de manière native.
Pour y parvenir sans utiliser eval(), vous pouvez utiliser une variable pour contenir le nom de la classe :
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
Cette technique est souvent utilisée dans le modèle Factory, qui est utilisé pour centraliser la création de classe et la dissocier du processus de création. Dans de tels scénarios, une classe d'usine créerait dynamiquement les instances de classe souhaitées en fonction de la configuration ou d'autres paramètres.
Pour plus d'informations sur les fonctionnalités du langage dynamique et les espaces de noms, reportez-vous aux ressources suivantes :
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!