在 PHP 中,从变量实例化类的能力在各种场景中都非常有用。人们可以通过有争议的 eval() 方法之外的方法来实现此功能。
问题:
考虑以下代码:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
This代码旨在使用变量作为类名来实例化一个类。但是,语法不正确。
解决方案:
要实现不使用 eval() 的动态类实例化,可以先将类名存储在变量中:
$classname = $var.'Class'; $bar = new $classname("xyz");
在此方法中,类名被分配给一个变量 ($classname),然后使用 $classname 变量创建该类的新实例。
用法:
这种技术通常在工厂模式中使用,它允许在不指定确切的类名的情况下创建对象。它还可以在依赖注入框架中查找应用程序,其中类名可以在运行时动态生成或配置。
要进一步了解,请参阅有关 PHP 中的命名空间和动态语言功能的文档。
以上是如何在 PHP 中不使用 eval() 实现动态类实例化?的详细内容。更多信息请关注PHP中文网其他相关文章!