搜尋

首頁  >  問答  >  主體

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;

區別在哪裡?資料也是查找不到的。求助

============================ 問題已解決,答案如下=============== =======================

前導的反斜線是不必要的也不建議的,因為導入的名稱必須是完全限定的,不會根據目前的命名空間作相對解析。

淡淡烟草味淡淡烟草味2792 天前640

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-05-16 13:15:36

    如圖:

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

    附上文字:

    注意對命名空間中的名稱(包含命名空間分隔符的完全限定名稱如FooBar以及相對的不包含命名空間分隔符的全域名稱如FooBar)來說,前導的反斜線是不必要的也不建議的,因為導入的名稱必須是完全限定的,並且不會根據目前的命名空間作相對解析。

    所以,沒有差別,而且不建議寫根''。

    @wujunze
    @anonymous66
    @corki

    回覆
    0
  • 怪我咯

    怪我咯2017-05-16 13:15:36

    use

    前導的反斜線是不必要的也不建議的,因為導入的名稱必須是完全限定的,不會根據目前的命名空間作相對解析。

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:15:36

    我覺得可以理解為,限定方式和非限定方式可以理解為我們文件引入時候的相對路徑和絕對路徑引入文件時候的區別,只是有點相同,不知道我理解的對不對,請各位大神指正一下,感謝!!!

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 13:15:36

    use Tooltool 是從專案的根命名空間開始找

    use Tooltool 是從目前目錄下的命名空間開始找

    回覆
    0
  • 取消回覆