PHP基礎篇--利用名稱空間解決類名問題
阿新 • • 發佈:2019-01-22
//util.php
<?php
namespace com\instance\util;
class Debug{
static function sayHello(){
print("Hello,".__NAMESPACE__."\n");
}
}
//main.php namespace main; require_once "util.php"; use com\instance\util; class Debug { static function sayHello(){ print("Hello,".__NAMESPACE__."\n"); } } Debug::sayHello(); util\Debug::sayHello();
以上兩個語句分別輸出:
Hello,main
Hello,com\instance\util
所以在不同包名中得類名即使相同也不衝突。
有幾個要點需要注意:
1.在一個PHP檔案中,namespace語句必須放在第一句。可以測試如下:
<?php
require_once "util.php";
namespace main;
class Debug{}
報錯:
Namespace declaration statement has to be the very first statement in the script
2.對於不指定包名的PHP檔案,可以假定其位於根名稱空間的下。通過反斜槓來引用
//global.php
<?php
class Debug{
static function sayHello(){
print("Hello,".__NAMESPACE__."\n");
}
}
//main.php
namespace main;
require_once "global.php";
class Debug {
static function sayHello(){
print("Hello,".__NAMESPACE__."\n");
}
}
Debug::sayHello();
\Debug::sayHello();
輸出結果為:
Hello,main
Hello,