1. 命名空間的訪問(wèn)分為三種模式
非限定名稱訪問(wèn)、限定名稱訪問(wèn)、完全限定名稱訪問(wèn)
非限定名稱訪問(wèn)
var_dump();// 不加空間名前綴訪問(wèn)空間元素
限定名稱訪問(wèn)
\think\var_dump();// 加空間名前綴訪問(wèn)空間元素
完全限定名稱訪問(wèn)
\app\think\var_dump();//從根命名空間開始訪問(wèn)
<?php
namespace app\think;
function var_dump()
{
echo 'this is one data <br>';
}
var_dump();//非限定名稱訪問(wèn)
namespace app;
think\var_dump();//限定名稱訪問(wèn)
\app\think\var_dump();//完全限定名稱訪問(wèn)
2. 通過(guò) use 關(guān)鍵字訪問(wèn)空間元素
use 語(yǔ)法規(guī)則
使用 as
時(shí)空間元素名稱則被新名稱取代, 原名稱不能用了, 故不能稱之為起別名, 應(yīng)該是起新名
use 引入空間元素是從根命名空間引入的, 也就是 完全限定名稱訪問(wèn)
use [元素類型] [命名空間\]類名 [as 新名稱];
空間元素都可以通過(guò) use 引入, 但是對(duì)于不同類型的空間元素引入方式
use 空間名稱\類名;//引入類
use function 空間名稱\函數(shù)名;//引入函數(shù)
use const 空間名稱\常量名;//引入常量
使用示例
use app\A; // 類
use const app\PI;//常量
use function app\var_dump;//函數(shù)
PHP7 開始支持使用 {}
一次引入多個(gè)相同命名空間下的多個(gè)空間元素 (PHP7之前需要使用多次 use)
use app\{
A,//類
const PI,//常量
function var_dump,//函數(shù)
};
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