关于命名空间的问题,请教大家。

2019-06-06 11:07:36 +08:00
 Nicolay
require_once('./service/Email.class.php');
$ob = \Service\Email::getInstance();
Email 类在 Service 命名空间下,为什么写成 $ob = Email::getInstance();会运行失败,不是已经把 email 类引入当前页面了么,为什么还要显式的写上命名空间。
3134 次点击
所在节点    PHP
5 条回复
Nicolay
2019-06-06 11:23:22 +08:00
是在一个没有命名空间的 php 文件上书写如上的代码的。
ben1024
2019-06-06 11:27:56 +08:00
因为没有命名空间的 php 文件上书写,Email::getInstance 找不到对应域。
所有要从根路径查询,
如果不想这样使用先可以 use Service\Email 声明作用域;类内进行使用。
curiousjude
2019-06-06 11:31:42 +08:00
建议还是要好好去理解一下命名空间是要解决什么问题。

你给的代码,如果我再同时引入一个命名空间为 \Xxx\Email 的类,你不指定命名空间,那到底是要用哪一个?
littleylv
2019-06-06 11:39:21 +08:00
建议先弄懂命名空间
weirdo
2019-06-09 13:41:09 +08:00
命名空间是命名空间
和 include/require 是两码事

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

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

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

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

© 2021 V2EX