php命名空間 namespace

php命名空間 namespace

官方說法是:
在PHP中,命名空間用來解決在編寫類庫或應用程式時創建可重用的代碼如類或函數時碰到的兩類問題
1.用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字沖突。
2.為很長的標識符名稱(通常是為瞭緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,提高源代碼的可讀性。
其實命名空間就是為瞭解決引入不同的文件存在瞭兩個相同的類的情況,其中 __NAMESPACE__ 可以獲取namespace的名稱。
例如,我有一個index文件引入 test.php 和 test2.php.但是這兩個文件中都含有 class take ,這樣我們在index.php文件中
去實例化 new take就會報錯的,這時候我們就需要使用命名空間。

test.php

<?php
namespace takes;
class take {
function __construct() {
print “this is test file! name is : “. __NAMESPACE__;
}
}

test2.php

<?php
namespace my;
class take {
function __construct() {
print “this is a my files! not test,name is : “. __NAMESPACE__;
}
}

index.php

use takes as a; //這樣將test文件中的take類的命名空間取別名 為a(純粹練習用的);
require_once(‘test.php’);
require_once(‘test2.php’);

$obj = new a\take(); //test文件中的take類
print “


“;
$obj2 = new my\take(); //test2文件中的take類

輸出結果為

this is test file! name is : takes
————————————————————————————————————————————————
this is a my files! not test,name is : my

You May Also Like