在 PHP 5.3之后加入了use來引用命名空間,
然后就出現(xiàn)了比如:
use Tool\tool;
new tool();
這樣簡化的操作。
然而,我知道不使用use,命名空間的三種被調(diào)用方式:
1、非限定方式 new tool()
2、限定方式 new Tool\tool()
3、完全限定方式 new \Tool\tool()
現(xiàn)在我理解了不需要use引入命名空間的操作方式,即上面3中方式。那么問題就是:
use Tool\tool;
與
use \Tool\tool;
區(qū)別在哪里?資料也是查找不到的。求助
============================ 問題已解決,答案如下 ======================================
前導(dǎo)的反斜杠是不必要的也不推薦的,因?yàn)閷?dǎo)入的名稱必須是完全限定的,不會根據(jù)當(dāng)前的命名空間作相對解析。
如圖:
附上地址:http://php.net/manual/zh/lang...
附上文本:
注意對命名空間中的名稱(包含命名空間分隔符的完全限定名稱如 FooBar以及相對的不包含命名空間分隔符的全局名稱如 FooBar)來說,前導(dǎo)的反斜杠是不必要的也不推薦的,因?yàn)閷?dǎo)入的名稱必須是完全限定的,不會根據(jù)當(dāng)前的命名空間作相對解析。
所以,沒有區(qū)別,而且不建議寫根'\'。
@wujunze
@anonymous66
@corki
use
前導(dǎo)的反斜杠是不必要的也不推薦的,因?yàn)閷?dǎo)入的名稱必須是完全限定的,不會根據(jù)當(dāng)前的命名空間作相對解析。
我覺得可以理解為,限定方式和非限定方式可以理解為我們文件引入時候的相對路徑和絕對路徑引入文件時候的區(qū)別,只是有點(diǎn)相同,不知道我理解的對不對,請各位大神指正一下,感謝!!!
use \Tool\tool
是從項(xiàng)目的根命名空間開始找
use Tool\tool
是從當(dāng)前目錄下的命名空間開始找