PHP 中命名空间 use 关键字的疑惑
在 PHP 5.3之后加入了use来引用命名空间,
然后就出现了比如:
use Tool\tool;
new tool();
这样简化的操作。
然而,我知道不使用use,命名空间的三种被调用方式:
1、非限定方式 new tool()
2、限定方式 new Tool\tool()
3、完全限定方式 new \Tool\tool()
现在我理解了不需要use引入命名空间的操作方式,即上面3中方式。那么问题就是:
use Tool\tool;
与
use \Tool\tool;
区别在哪里?资料也是查找不到的。求助
============================ 问题已解决,答案如下 ======================================
前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如图:
附上地址:http://php.net/manual/zh/lang...
附上文本:
所以,没有区别,而且不建议写根'\'。
@wujunze
@anonymous66
@corki
use
我觉得可以理解为,限定方式和非限定方式可以理解为我们文件引入时候的相对路径和绝对路径引入文件时候的区别,只是有点相同,不知道我理解的对不对,请各位大神指正一下,感谢!!!
use \Tool\tool
是从项目的根命名空间开始找use Tool\tool
是从当前目录下的命名空间开始找