Vah*_*iri 9 php fatal-error laravel
我需要根据传递给函数的参数创建类.我是这样做的:
public function index($source)
{
if(in_array($source, ModuleManager::getAllModules()))
{
$provider = new $source();
if($image)
{
return $provider->getAll(true);
}
else
{
return $provider->getAll(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在第5行,我正在尝试创建一个$source肯定可用的类对象.据我所知,上面的代码实际上是一个eval调用.我正在使用Laravel 5.2,上面的代码返回:
FatalThrowableError in ProcReqController.php line 19:
Fatal error: Class 'Example' not found
Run Code Online (Sandbox Code Playgroud)
在上面的错误Example可以是我做的任何类.现在如果我硬编码$source那么它的值就可以了.
我得到的错误是什么?
我相信当你试图实例化一个类名在变量中并且与导入有关的类时,PHP会发生混乱.
将您的$class变量设置为包含命名空间的完全限定类名,它应该可以工作.
这样,new $class()即使包括括号也应该工作.
在进一步测试之后,似乎在实例化变量类时,它总是假设全局命名空间.
考虑到这一点,您可以使用class_alias别名来对每个类进行别名.在config/app.php,您可以将每个类添加到aliases数组中.
'aliases' => [
....
'Example' => App\Example::class
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |