PHP 命名空間元素訪問(wèn)及use的使用

作者:辰風(fēng)沐陽(yáng) 閱讀:1599 發(fā)布時(shí)間:2021-06-05 上次更新:2021-06-06

1. 命名空間的訪問(wèn)分為三種模式


非限定名稱訪問(wèn)、限定名稱訪問(wèn)、完全限定名稱訪問(wèn)

非限定名稱訪問(wèn)

  1. var_dump();// 不加空間名前綴訪問(wèn)空間元素

限定名稱訪問(wèn)

  1. \think\var_dump();// 加空間名前綴訪問(wèn)空間元素

完全限定名稱訪問(wèn)

  1. \app\think\var_dump();//從根命名空間開始訪問(wèn)
  1. <?php
  2. namespace app\think;
  3. function var_dump()
  4. {
  5. echo 'this is one data <br>';
  6. }
  7. var_dump();//非限定名稱訪問(wèn)
  8. namespace app;
  9. think\var_dump();//限定名稱訪問(wèn)
  10. \app\think\var_dump();//完全限定名稱訪問(wèn)

2. 通過(guò) use 關(guān)鍵字訪問(wèn)空間元素


use 語(yǔ)法規(guī)則

使用 as 時(shí)空間元素名稱則被新名稱取代, 原名稱不能用了, 故不能稱之為起別名, 應(yīng)該是起新名

use 引入空間元素是從根命名空間引入的, 也就是 完全限定名稱訪問(wèn)

  1. use [元素類型] [命名空間\]類名 [as 新名稱];

空間元素都可以通過(guò) use 引入, 但是對(duì)于不同類型的空間元素引入方式

  1. use 空間名稱\類名;//引入類
  2. use function 空間名稱\函數(shù)名;//引入函數(shù)
  3. use const 空間名稱\常量名;//引入常量

使用示例

  1. use app\A; // 類
  2. use const app\PI;//常量
  3. use function app\var_dump;//函數(shù)

PHP7 開始支持使用 {} 一次引入多個(gè)相同命名空間下的多個(gè)空間元素 (PHP7之前需要使用多次 use)

  1. use app\{
  2. A,//類
  3. const PI,//常量
  4. function var_dump,//函數(shù)
  5. };

3. 系統(tǒng)默認(rèn)的空間元素訪問(wèn)規(guī)則


系統(tǒng)內(nèi)置的函數(shù)、常量、類都屬于全局空間

函數(shù)和類在空間內(nèi)訪問(wèn)時(shí)系統(tǒng)會(huì)先在當(dāng)前空間找, 找不到再去全局空間找; 而類不會(huì)去全局空間下找, 當(dāng)前空間下類找不到時(shí)將拋出 Fatal error

標(biāo)簽: php