在laravel中:
$a = "myClass";
$b = new $a();
//—— laravel 告诉我 myClass 找不到
但是 我直接
$b = new myClass();
这样做没问题
在laravel中:
$a = "myClass";
$b = new $a();
//—— laravel 告诉我 myClass 找不到
但是 我直接
$b = new myClass();
这样做没问题
|
1
有同学遇到过这样的问题吗?
|
|
haiyang416Jun 10, 2015 via Android
2
你需要完全限定名,包括命名空间。
|
|
3
@haiyang416
即使在项目中我这样样子,依然无法找到对应的class $tmp = 'App\Handlers\Library\ks3\core\Signers\DefaultUserAgentSignerDefaultUserAgentSigner'; $signer = new $tmp; |
|
haiyang416Jun 10, 2015 via Android
4
命名空间用绝对地址,前面那个斜杠加上再试试,如果还不行那你需要确认下自动加载里是否注册了这个类了。
|
|
haiyang416Jun 10, 2015 via Android
5
最好看下自动加载失败的提示,看类名是否正确。
|
|
mcfogJun 10, 2015
6
用::class语法不就完事儿了
|
|
7
@mcfog ::class 和字符串怎么用 eval ?
|
|
8
@mcfog 能给个示例吗?
|
|
yyinsomniaJun 10, 2015
9
because there is no difference between a qualified and a fully qualified Name inside a dynamic class name, function name, or constant name, the leading backslash is not necessary
多看手册~ |
|
10
@yyinsomnia 方便给个地址吗?
|
|
haiyang416Jun 10, 2015 via Android
11
|
|
12
@yyinsomnia 你试试 跟你说的似乎不同
|
|
13
感谢大家的帮助,是我太悲剧了,名字拼写错误!谢谢大家
|