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

2015-06-10 19:02:32 +08:00
 xiaoyu9965

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

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

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

https://www.v2ex.com/t/197571

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

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

© 2021 V2EX