让我们说一个例子我有一个班级:
//no namespace
class User {
//...
}
我有一个变量:
$model = 'User';
当我当前在命名空间中时,如何实例化new User
?
new $model
可以正常工作。但是,如果我在命名空间中并且User
不在命名空间中,那该怎么办呢。
这样的事情不起作用:
namespace Admin;
class Foo {
function fighter($model)
{
return new \$model;
// syntax error, unexpected '$model'
}
}
}
答案 0 :(得分:8)
将完整的命名空间放在变量中,然后使用它。
<?php
$namespace = '\\'.$model;
return new $namespace
?>