Instancier dynamiquement une classe PHP à partir d'une variable
En PHP, il est possible d'instancier dynamiquement une classe à l'aide d'une variable chaîne contenant la classe nom. Ceci peut être réalisé en attribuant d'abord le nom de la classe à une nouvelle variable, puis en utilisant l'opérateur signe dollar ($) pour instancier la classe.
Exemple :
$var = 'bar'; $classname = $var . 'Class'; $bar = new $classname('argument for constructor');
Cela créera une nouvelle instance de la classe barClass, en passant l'argument 'argument pour le constructeur' à son constructeur.
Utilisation d'un modèle Factory :
Cette technique est souvent utilisée dans le contexte du modèle Factory, où une classe d'usine est chargée de créer et de renvoyer des instances de différentes classes en fonction d'un paramètre donné. Par exemple :
class ClassFactory { public static function create($className, $args = []) { $instance = new $className(...$args); return $instance; } }
Cette classe d'usine peut être utilisée comme suit :
$instance = ClassFactory::create('barClass', ['argument for constructor']);
Remarques supplémentaires :
Lors de l'utilisation de cette technique, il est important de s'assurer que la variable contenant le nom de la classe est correctement nettoyée pour empêcher l'instanciation arbitraire de la classe. Ceci peut être réalisé en utilisant des fonctions comme preg_replace() pour valider le nom de la classe.
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!