PHP 中命名空间 use 关键字的疑惑
淡淡烟草味
淡淡烟草味 2017-05-16 13:13:36
[PHP讨论组]

在 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;

区别在哪里?资料也是查找不到的。求助

============================ 问题已解决,答案如下 ======================================

前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

淡淡烟草味
淡淡烟草味

全部回复(4)
PHP中文网

如图:

附上地址:http://php.net/manual/zh/lang...

附上文本:

注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 FooBar以及相对的不包含命名空间分隔符的全局名称如 FooBar)来说,前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

所以,没有区别,而且不建议写根'\'。

@wujunze
@anonymous66
@corki

怪我咯

use

前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

仅有的幸福

我觉得可以理解为,限定方式和非限定方式可以理解为我们文件引入时候的相对路径和绝对路径引入文件时候的区别,只是有点相同,不知道我理解的对不对,请各位大神指正一下,感谢!!!

PHP中文网

use \Tool\tool 是从项目的根命名空间开始找

use Tool\tool 是从当前目录下的命名空间开始找

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号