定義多個命名空間
使用命名空間
namespace關鍵字和魔術常量__namespace__
命名空間的別名/匯入
命名空間在專案中的使用
//宣告乙個命名空間的語法格式
namespace
spacename;/*
這裡的**都是空間中的**;
*/
語法說明:
(1)namespace 是宣告空間的關鍵字,不區分大小寫
(2)spacename 是定義的空間名稱,命名方式與類名相同
(3)所有**都可以存在與空間中
(4)只有類、函式、常量**會受到空間影響
**例子:
namespace.php
<?php
//宣告乙個命名空間
namespace
;//(1)定義乙個學生類
class
student";
}}//(2)定義乙個函式
function
showinfo()
//(3)定義乙個常量
const
db_host
="localhost"
;//(4)定義乙個變數$a=
1000
;
<?php
//宣告頁面字符集
header
("content-type:text/html;charset=utf-8");
//(1)包含檔案
require_once
("./namespace.php");
//(2)建立學生類物件
$obj
=new()
;//(3)呼叫showinfo()函式()
;echo""
;echo""
.$a;
描述
資料夾可以有子目錄的情況,命名空間也有子空間情況。
**例子:
namespace02.php
<?php
//宣告乙個命名空間
namespace
;//(1)定義乙個學生類
class
student";
}}//(2)定義乙個函式
function
showinfo()
//(3)定義乙個常量
const
db_host
="localhost"
;//(4)定義乙個變數$a=
1000
;
<?php
//宣告頁面字符集
header
("content-type:text/html;charset=utf-8");
//(1)包含檔案
require_once
("./namespace02.php");
//(2)建立學生類物件
$obj
=new()
;//(3)呼叫showinfo()函式()
;echo""
;echo""
.$a;
建議:乙個檔案不要定義多個空間。
1. 簡單組合法
**例子:
namespace03.php
<?php
//宣告第1個命名空間
namespace
;//定義乙個學生類
class
student";
}}//宣告第2個命名空間
namespace
;//定義乙個學生類
class
student";
}}
<?php
//宣告頁面字符集
header
("content-type:text/html;charset=utf-8");
//(1)包含檔案
require_once
("./namespace03.php");
//(2)建立學生類物件
$obj1
=new()
;$obj2
=new()
;
2.大括號語法<?php
//宣告第1個命名空間
namespace";
}}}//宣告第2個命名空間
namespace";
}}}
匿名空間
如果乙個檔案用大括號語法定義多個命名空間,如果要寫全域性**,還不想把全域性**加到某個命名空間中,該怎麼寫?
namespace.php
<?php
//宣告第1個命名空間
namespace";
}}}//宣告第2個命名空間
namespace";
}}}//宣告第3個匿名空間(全域性**、根空間**)
namespace
}}
<?php
//宣告頁面字符集
header
("content-type:text/html;charset=utf-8");
//(1)包含檔案
require_once
("./namespace.php");
//(2)建立學生類物件
$obj1
=new()
;$obj2
=new()
;$obj3
=new
teacher()
;
檔案系統中訪問檔案的方式
限定名稱-**例子:
<?php
//宣告第1個命名空間
namespace";
}}//建立學生類物件(非限定訪問方式)
$stuobj
=new
student()
;//建立教師類物件(限定訪問方式)
$staobj
=new
home\teacher()
;//建立教師類物件(完全限定訪問方式)
$staobj
=new()
;}//宣告第2個命名空間
namespace";
}}}
宣告空間關鍵字;
可以用來直接代替當前空間名,相當於self關鍵字。
例子**:
<?php
//宣告第1個命名空間
namespace";
}}$stuobj
=new
namespace\student()
;$staobj
=new
namespace\home\teacher()
;//宣告第2個命名空間
namespace";
}}}
描述:獲取當前命名空間的字串名稱。
**例子:
<?php
//宣告第1個命名空間
namespace";
}}$classname
=__namespace__
."\student"
;//建立學生類物件
$stuobj
=new
$classname()
;}
**例子:
namespace.php
<?php
//宣告第1個命名空間
namespace
;//定義乙個學生類
class
student";
}}
<?php
//宣告頁面字符集
header
("content-type:text/html;charset:utf-8");
//(1)包含檔案
require_once
("./namespace.php");
//(2)匯入空間,預設的空間別名為最後乙個單詞
use;
$obj
=new
controller\student()
;//(3)匯入空間並起別名
useas cont;
$obj
=new
cont\student()
;//(4)匯入空間中的類,預設的類名為最後乙個單詞
use;
$obj
=new
student()
;//(5)匯入空間中的類,並起別名
useas stu;
$obj
=new
stu(
);
PHP命名空間學習筆記
命名空間的支援版本 php 5 5.3.0,php 7 從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案 foo.txt 可以同時在目錄 home greg 和 ...
PHP命名空間筆記
此篇文章作為我從開始學習php到工作一段時間後的命名空間知識點總結,會隨學習和工作的提高而完善 命名空間 定義命名空間意義 一 為了解決多檔案中 相互引入時 類名,常量名,函式名可能會重複命名的問題 二 快速定位檔案位置 三 就是給檔案加個隱式字首 四 命名空間需要寫在檔案的最前面 全域性空間 如果...
命名空間 PHP筆記
命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念,比如在作業系統中,目錄用來將相關檔案分組,對於目錄中的檔案來說,目錄就扮演了命名空間的角色。這個原理應用到程式設計領域就是命名空間的概念。php 5.3後的版本開始支援命名空間。命名空間通過關鍵字namespace來宣告。任何合法的ph...