En PHP, puede encontrar un escenario en el que necesite crear instancias de una clase a partir del valor de una variable. Ilustremos esto con un ejemplo:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
Este método intenta crear una instancia de la clase especificada por la variable $var. Sin embargo, PHP no admite esta sintaxis de forma nativa.
Para lograr esto sin usar eval(), puedes utilizar una variable para contener el nombre de la clase:
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
Esta técnica se emplea a menudo en el patrón Factory, que se utiliza para centralizar la creación de clases y desacoplarla desde el proceso de creación. En tales escenarios, una clase de fábrica crearía las instancias de clase deseadas dinámicamente según la configuración u otros parámetros.
Para obtener más información sobre las características del lenguaje dinámico y los espacios de nombres, consulte lo siguiente recursos:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3