laravel 中遇到一个纠结的问题!

2015 年 6 月 10 日
 xiaoyu9965

在laravel中:
$a = "myClass";
$b = new $a();
//—— laravel 告诉我 myClass 找不到
但是 我直接
$b = new myClass();
这样做没问题

3442 次点击
所在节点    PHP
13 条回复
xiaoyu9965
2015 年 6 月 10 日
有同学遇到过这样的问题吗?
haiyang416
2015 年 6 月 10 日
你需要完全限定名,包括命名空间。
xiaoyu9965
2015 年 6 月 10 日
@haiyang416
即使在项目中我这样样子,依然无法找到对应的class
$tmp = 'App\Handlers\Library\ks3\core\Signers\DefaultUserAgentSignerDefaultUserAgentSigner';
$signer = new $tmp;
haiyang416
2015 年 6 月 10 日
命名空间用绝对地址,前面那个斜杠加上再试试,如果还不行那你需要确认下自动加载里是否注册了这个类了。
haiyang416
2015 年 6 月 10 日
最好看下自动加载失败的提示,看类名是否正确。
mcfog
2015 年 6 月 10 日
用::class语法不就完事儿了
xiaoyu9965
2015 年 6 月 10 日
@mcfog ::class 和字符串怎么用 eval ?
xiaoyu9965
2015 年 6 月 10 日
@mcfog 能给个示例吗?
yyinsomnia
2015 年 6 月 10 日
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
多看手册~
xiaoyu9965
2015 年 6 月 10 日
@yyinsomnia 方便给个地址吗?
haiyang416
2015 年 6 月 10 日
xiaoyu9965
2015 年 6 月 10 日
@yyinsomnia 你试试 跟你说的似乎不同
xiaoyu9965
2015 年 6 月 10 日
感谢大家的帮助,是我太悲剧了,名字拼写错误!谢谢大家

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/197571

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX