从命名空间中的变量名称实例化新类

Jür*_*aul 5 php oop namespaces object

让我们说一个例子我有一个类:

//no namespace
class User { 
    //...
}
Run Code Online (Sandbox Code Playgroud)

我有一个变量:

$model = 'User';
Run Code Online (Sandbox Code Playgroud)

new User当我当前在命名空间中时,如何实例化?

new $model当我不在命名空间时工作.但是,如果我在命名空间中并且User不在命名空间中,该怎么办?

这样的东西不起作用:

namespace Admin;

class Foo {
    function fighter($model)
    {
        return new \$model;
        // syntax error, unexpected '$model'
    }
}

}
Run Code Online (Sandbox Code Playgroud)

Ren*_*hle 8

将完整的命名空间放在变量中,然后使用它.

<?php    
$namespace = '\\'.$model;

return new $namespace
?>
Run Code Online (Sandbox Code Playgroud)

相同主题:PHP命名空间可以包含变量吗?