在 PHP 中,您可能会遇到需要从变量的值实例化类的场景。让我们用一个例子来说明这一点:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
此方法尝试创建 $var 变量指定的类的实例。然而,PHP 本身并不支持这种语法。
要在不使用 eval() 的情况下实现此目的,您可以使用变量来保存类名:
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
工厂模式中经常使用这种技术,用于集中类创建并将其与创建过程分离。在这种情况下,工厂类将根据配置或其他参数动态创建所需的类实例。
有关动态语言功能和命名空间的更多信息,请参阅以下内容资源:
以上是如何在 PHP 中从变量实例化类?的详细内容。更多信息请关注PHP中文网其他相关文章!