1.命名空間namespace
含義:封裝事物的方法
作用:解決名字沖突的問題。
注意:1.當在字符串中使用命名空間名字的時候,一定不要忘了轉義\
2.所有在非用戶定義的命名空間中的聲明(類、函數、常量),都默認的屬於全局命名空間。
用法(定義命名空間):
Namespace 空間名字{
class Test{
}
}
注意:1.沒有空間名字則表示 全局空間的代碼塊
一個文件中定義多個命名空間:
<?php
namespace MyNamespace {
}
namespace MySecondNamespace {
}
namespace {
}
我們也可以將一個命名空間分散在不同的文件中,文件包含的處理程序會自動合並他們。因此,限制大量的命名空間在同一個文件中定義是一個很好的編程實踐,就像我們通常單獨為每個類定義一個單獨的文件一樣
namespace必須聲明在所有代碼的最前面
調用:
<?php//文件名a1.php
/*
* 命名空間 namespace
*/
namespace lovo;
class TestNamespace{
public function test(){
echo '掉用了我';
}
}
?php//第2個PHP
// namespace必須聲明在所有代碼的最前面
//namespace lovo;
require_once('a1.php');
// 使用use可以指定加載的命名空間及其對應的類,同時在類名后面可以使用as關鍵字指定某個類的別名
// 一旦起了別名后,在當前文件中就可以使用這個別名來創建對應的類的對象
use lovo\TestNamespace as MyTest;
$test4 = new \lovo\TestNamespace();
$test5 = new MyTest();
$test5->test();
var_dump($test5);
注意:PHP並不支持命名空間的嵌套定義
一個文件可以定義多個命名空間
