namesapce命名空间的示例分析

  介绍

这篇文章主要介绍了namesapce命名空间的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强> 1。命名空间的使用目的

<强>,强在PHP中函数,类,常量是不允许同名的。为了解决这三者的同名问题,所以出现了命名空间,故而命名空间只影响类,函数,常量(常量)。

<强> 2。命名空间的使用格式

<>强,。可以命名一个空间

,php & lt; ?   ,,,,namespace  space1;//命名空间关键字,+空间名,   ,,,,代码;   ,?在

<强> b。也可以同时命名多个空间

& lt; php ?   ,,,,namespace  space1;//命名空间关键字,+空间名,   ,,,,代码1;   ,,,,namespace 太空;   ,,,,代码2;   ,,,,namespace  space3;   ,,,,代码3;   ,,,,.......//代码1代码2代码3,可相同亦可不同   ,,,.......   ,?在

注意事项:如果一个php文件中,第一个空间的定义义必须放在第1行。不过凡事都有例外,在声明命名空间之前还有唯一合法的代码是用于定义源文件编码方式的声明语句。所有非php代码包括空白符都不能出现在命名空间的声明之前,例如下面的代码会报错。

& lt; html>   php & lt; ?   ,,   namespace 才能;space1;   namespace 才能;太空;   比;   & lt;/html>

<强> 3。命名空间的访问

<强>,命名空间的访问分为:非限定空间访问,限定空间访问,完全限定访问。

<强>,一个。非限定空间访问

& lt; php ?   namespace  space3;   ,,function  f1 () {   ,,echo “space3";   ,,}   namespace  space3 \太空;//其中“\“代表太空是space3的子空间,同理space3是太空的父空间。   ,,function  f1 () {   ,,,,echo “space2";   ,,,,}   namespace  space3 \太空\ space1;   ,,function  f1 () {   ,,,,echo “space1";   ,,,,}   ,,f1();//对上面空间成员进行访问,输出结果为:space1   ?在

<强> b。限定空间访问

& lt; php ?   namespace 太空\ space1;   ,,,function  f1 () {   ,,,,echo “space1";   ,,,,,}   namespace 太空;   function  f1 () {   ,,,,echo “space2";   ,,,,,}   ,,f1();//此时输出的是,太空的   ,,space1 \ f1();//此时输出的是space1   ?在

<强> c。完全限定空间访问

& lt; php ?   namespace  space3;   ,,function  f1 () {   ,,echo “space3";   ,,}   namespace 太空;   ,,,,,function  f1 () {   ,,,,echo “space2";   ,,,,}   namespace  space1;   ,,,,function  f1 () {   ,,,,echo “space1";   ,,,,}   ,,f1();//对上面空间成员进行访问,输出结果为:space1   ,,\ space3 \ f1();//对space3进行访问,输出结果为:space3   ,,\太空\ f1();//对太空的进行访问,输出结果为:太空   ?在

<强> 4。引入空间成员

<强>,,一个。使用空间名\空间名【如别名】:将指定空间引入到当前空间。同可以使用,关键字为被引入的空间起个别名

<强>,,b。使用空间名\空间名\成员类【如别名】:将指定的空间中的成员引入到当前空间,引入空间成员只能引入类

<强> 5。一些小情况

<强>,,一旦命名空间出现,那么空间元素(类,常量,函数)的访问就被限定在空间内,如果使用非限定空间访问,系统会出现以下解析逻辑(限定名称或完全限定名称是直接按照路径准确查找)

<李>

<强>首先在自己空间内查找

<李>

<强>其次在如果找不到元素,不同空间元素的处理方式不同

<强>,,,,,,系统常量,系统函数如果找不到,会全局空间去找

<强>,,,,,,,系统类是不会自动去全局空间去找的(报错,提示空间找不到)

& lt; php ?   namespace  space3;   ,,function  f1 () {   ,,echo “space3";   ,,}//当前所有访问如果使用非限定名称都代表访问当前空间内的元素   f1();//访问space3下f1()函数//想要访问函数   定义(& # 39;π# 39;,3.14);//space3下没有定义()函数,全局函数有//想要访问系统常量   echo  PHP_VERSION,//space3下没有定义()函数,全局函数有//想要访问类//错误方案//m=new 美元;Mysqli (& # 39; localhost # 39;, & # 39;根# 39;,& # 39;根# 39;);//系统会提示类不存在//正确方案   m=美元,new  \ Mysqli (& # 39; localhost # 39; & # 39;根# 39;,& # 39;根# 39;);      ?在

namesapce命名空间的示例分析