如何在 PHP 中动态实例化类而不使用 eval()?

Linda Hamilton
发布: 2024-11-20 12:42:11
原创
947 人浏览过

How to Dynamically Instantiate Classes in PHP without Using eval()?

在 PHP 中通过动态变量实例化类

从变量名称动态实例化类在 PHP 中是一项很有价值的技术。考虑以下场景:

$var = 'bar';
$bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
登录后复制

如何在不诉诸备受争议的 eval() 函数的情况下实现这一目标,而您宁愿避免使用该函数?

变量赋值和实例化

解决方案在于创建一个保存类名的变量,然后使用$ 变量运算符:

$classname = $var . 'Class';

$bar = new $classname("xyz");
登录后复制

此技术允许您根据变量值动态实例化类,这在工厂模式等模式中非常有用。

进一步的注意事项

要深入研究这个主题,请参阅 PHP 关于命名空间和动态语言功能的文档,它提供了更多上下文和信息示例。

以上是如何在 PHP 中动态实例化类而不使用 eval()?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板