Em PHP, você pode encontrar um cenário em que precisa instanciar uma classe a partir do valor de uma variável. Vamos ilustrar isso com um exemplo:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
Este método tenta criar uma instância da classe especificada pela variável $var. No entanto, o PHP não suporta esta sintaxe nativamente.
Para conseguir isso sem usar eval(), você pode utilizar uma variável para armazenar o nome da classe:
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
Esta técnica é frequentemente empregada no padrão Factory, que é usado para centralizar a criação de classes e desacoplá-la desde o processo de criação. Nesses cenários, uma classe de fábrica criaria as instâncias de classe desejadas dinamicamente com base na configuração ou em outros parâmetros.
Para obter mais informações sobre recursos de linguagem dinâmica e namespaces, consulte o seguinte recursos:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3