在 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()');
工厂模式中经常采用这种技术,用于集中类创建并解耦类从创作过程来看。在这种情况下,工厂类将根据配置或其他参数动态创建所需的类实例。
有关动态语言功能和命名空间的更多信息,请参阅以下资源:
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3