我正在尝试使用动态路径初始化对象。我有模型名称的变量$model
。
$model = "foo";
$class = new \Path\To\$model();
我得到了错误
Parse error: syntax error, unexpected '$model' (T_VARIABLE), expecting identifier (T_STRING)
如果我尝试$class = new \Path\To\{$model}();
我收到错误
Parse error: syntax error, unexpected '{', expecting identifier (T_STRING)
当我尝试
namespace \App\Models
$class = new $model();
我收到错误Class 'foo' not found
当我尝试$class = new \Path\To\foo();
时,它会起作用。
有什么想法吗?
答案 0 :(得分:2)
尝试:
$class = "\Path\To\foo";
$object = new $class();
或者:
use Path\To\foo;
$class = foo::class;
$object = new $class();
答案 1 :(得分:1)
您可以将路径存储在变量中:
$path = "\Path\To\\";
然后生成这样的类名:
$className = $path.$model;
$class = new $className();