PHP动态类名laravel

PHP动态类名laravel,php,class,laravel,dynamic,Php,Class,Laravel,Dynamic,我正在使用Laravel,在创建带有字符串的类时遇到问题。该类与调用它的类位于相同的名称空间中 下面的代码在第三行失败,我不确定我做错了什么 $class= "Variant"; $s = new Variant(); $nc = new $class(); 这实际上就是名称空间的用途: $s=new\OneNamespaceName\Variant() 这通常用于工厂模式。因此名称空间是每个文件的,所以您需要将其包含在变量的类声明中。好的,答案是我需要类上的名称空间 在composer.js

我正在使用Laravel,在创建带有字符串的类时遇到问题。该类与调用它的类位于相同的名称空间中

下面的代码在第三行失败,我不确定我做错了什么

$class= "Variant";
$s = new Variant();
$nc = new $class();

这实际上就是名称空间的用途:

$s=new\OneNamespaceName\Variant()


这通常用于工厂模式。因此名称空间是每个文件的,所以您需要将其包含在变量的类声明中。

好的,答案是我需要类上的名称空间

在composer.json中

"psr-4": {
    "SplitTest\\": "app/library/SplitTest/"
}
然后这样调用该类:

$class= "//SplitTest//Variant";
$s = new Variant();
$nc = new $class();
如果要访问psr-4定义,则需要运行

php artisan dump-auto

尝试将完整名称空间添加到字符串类,看看它是否像:“\\Foo\\Bar\\Variant”。Fails=您遇到了什么错误?@rainer我尝试了几种不同的组合,但这是我的名称空间$class=“\\SplitTest\\Variant”类的可能重复