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 découpler 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 de langage dynamiques et les espaces de noms, reportez-vous aux ressources suivantes :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3