Instanciation de classe dynamique avec des chaînes en PHP
En PHP, il est possible de créer une instance d'une classe en utilisant une chaîne représentant la classe nom. Cela élimine le besoin de longues instructions switch lorsqu'il s'agit de plusieurs classes.
Considérez l'exemple suivant :
class ClassOne {} class ClassTwo {} $str = 'One';
Plutôt que d'utiliser une instruction switch :
switch ($str) { case "One": $object = new ClassOne(); break; case "Two": $object = new ClassTwo(); break; }
Vous pouvez créer dynamiquement une instance à l'aide d'une chaîne comme suit :
$class = 'Class' . $str; $object = new $class();
Cette syntaxe construit le nom complet de la classe (par exemple, "ClassOne") et l'instancie. Si vos classes sont dans des espaces de noms, utilisez le nom complet :
$class = '\Foo\Bar\MyClass'; $instance = new $class();
PHP étend également cette fonctionnalité aux fonctions et méthodes de variables :
$func = 'my_function'; $func(...$parameters); // Calls my_function() with parameters $method = 'doStuff'; $object = new MyClass(); $object->$method(); // Calls Myclass->doStuff() (new MyClass())->$method(); // Calls Myclass->doStuff() in one line
Bien que vous puissiez créer des variables avec des chaînes , cela est considéré comme une mauvaise pratique et doit être évité au profit de l'utilisation de tableaux.
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!