學完namespace
,順手來個命名空間的小總結。
1.命名空間的使用目的
在PHP
函數
、
類別
常數是不允許同名的。為了解決這三者的同名問題,所以出現了命名空間,故而命名空間只影響類別、函數、常數
(const)。
2.命名空間的使用格式
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> <?php
namespace space1;//namespace关键字+空间名
代码;
?></pre><div class="contentsignin">登入後複製</div></div>
<?php namespace space1;//namespace关键字 +空间名 代码1; namespace space2; 代码2; namespace space3; 代码3; .......//代码1,代码2,代码3,可相同亦可不同 ....... ?>
declare 語句。所有非 PHP 程式碼包括空格符都不能出現在命名空間的宣告之前。例如下面的程式碼會報錯。
<html> <?php namespace space1; namespace space2; ?> </html>
3.命名空間的存取
命名空間的存取分為:非限定空間存取,限定空間存取
,完全限定空間存取。
<?php
namespace space3;
function f1(){
echo "space3";
}
namespace space3\space2;//其中"\"代表space2是space3的子空间,同理space3是space2的父空间。
function f1(){
echo "space2";
}
namespace space3\space2\space1;
function f1(){
echo "space1";
}
f1();//对上面空间成员进行访问,输出结果为:space1
?>
<?php namespace space2\space1; function f1(){ echo "space1"; } namespace space2; function f1(){ echo "space2"; } f1();//此时输出的是 space2 space1\f1();//此时输出的是space1 ?>
限定空間存取#<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"><?php
namespace space3;
function f1(){
echo "space3";
}
namespace space2;
function f1(){
echo "space2";
}
namespace space1;
function f1(){
echo "space1";
}
f1();//对上面空间成员进行访问,输出结果为:space1
\space3\f1();//对space3进行访问,输出结果为:space3
\space2\f1();//对space2进行访问,输出结果为:space2
?></pre><div class="contentsignin">登入後複製</div></div>
.完全限定空間存取
<?php namespace space3; function f1(){ echo "space3"; } //当前所有访问如果使用非限定名称都代表访问当前空间内的元素 f1();//访问space3下f1()函数 //想要访问函数 define('PI',3.14);//space3下没有define()函数,全局函数有 //想要访问系统常量 echo PHP_VERSION; //space3下没有define()函数,全局函数有 //想要访问类 //错误方案 //$m=new Mysqli('localhost','root','root');//系统会提示类不存在 //正确方案 $m= new \Mysqli('localhost','root','root'); ?>
4.引入空間成員
a.
# 空間名稱\空間名【as 別名】:將指定空間引入目前空間。同可以使用as關鍵字為被引入的空間起個別名
b.use
空間名稱\空間名稱\成員類別【#5.一些小情況
先在自己空間內找出
其次在如果找不到元素,不同空間元素的處理方式不同
系統常數,系統函數若找不到,會全域空間去找
系統類別是不會自動去全域空間去找的(報錯,提示空間找不到)
以上是無限娃娃,namesapce的命名之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!