首先闡述一下概念
命名空間: 宣告命名空間的**應該放在<?php **後的第一行。
子命名空間使用 \ 分割。
同一空間的所有類沒必要寫在同乙個php檔案裡。
廠商命名空間是最重要的命名空間,是最頂層的命名空間,用於識別品牌或組織,具有全域性唯一性。
使用use 關鍵字匯入**。
use關鍵字:
use位置在<?php 標籤或命名空間之後。
use必須出現在全域性作用域中,不能再類或函式中
全域性命名空間: 有些**沒有命名空間,而是在全域性命名空間中,使用時要在類、函式、介面、常量前加上 \ 符號
2.使用示例:
phpadvanced 目錄下的testnamespaced.php類
<?php
namespace
phpadvanced;
class
testnamespace
public
static
function
setname
($name)
}
phpadvanced/test 目錄下的testnamespaced.php類
<?php
namespace
phpadvanced\test;
require_once
"../testnamespace.php";
usephpadvanced\testnamespace
astestnamespace1;
class
testnamespace
public
static
function
setname
($name)
}$obj = new testnamespace();
$obj->setname("haha2");
$obj->getname();
testnamespace1::getname();
3.使用示例2執行結果:
haha2
hehe1
分析:在不同目錄(不同命名空間下)建立相同的類testnamespace.php,類包含乙個私有的靜態變數和兩個共有的靜態方法。
使用require_once 包含檔案後,使用use定義命名空間別名。
phpadvanced 目錄下的testnamespaced2.php類
<?php
namespace
phpadvanced;
require_once
"./testnamespace.php";
require_once
"./test/testnamespace.php";
usephpadvanced\testnamespace
astestnamespace1;
usephpadvanced\test\testnamespace
astestnamespace11;
testnamespace1::setname("haha");
testnamespace1::getname();
testnamespace11::setname("haha2");
testnamespace11::getname();
全域性命名空間示例執行結果:
haha
haha2
phpadvanced 目錄下的testnamespaced3.php類
<?php
namespace
phpadvanced;
class
testnamespace3
}$obj = new testnamespace3();
$obj->test();
沒有在exception前加 \ 符號 執行結果:
fatal error: class 'phpadvanced\exception' not found in c:\xampp
\htdocs
\phpadvanced
\testnamespace3.php on line 8
在exception前 加 \ 符號,執行結果:
object(exception)#2 (7)
}} ["previous":"exception":private]=>
null
}
php 命名空間,PHP使用命名空間
介紹 命名空間中的類,函式或常量可以通過以下方式使用 在當前命名空間中使用類 指定相對於當前命名空間的命名空間 提供命名空間的全限定名稱 從當前命名空間 在此示例中,從test1.php載入了命名空間。沒有命名空間引用的函式或類名稱將訪問當前命名空間中的功能或類名稱 示例 test1.php nam...
php命名空間
namespace misszhou function var dump a 1 var dump var dump 1 表示呼叫全域性 解決常量的衝突問題 有點像子目錄的概念 namespace meizi 必須放第一行 include func.inc.php function one func...
php 命名空間
使用命名空間 別名 匯入,允許通過別名引用或匯入外部的完全限定名稱,是命名空間的乙個重要特徵。這有點類似於在類 unix 檔案系統中可以建立對其它的檔案或目錄的符號連線。所有支援命名空間的php版本支援三種別名或匯入方式 為類名稱使用別名 為介面使用別名或為命名空間名稱使用別名。php 5.6開始允...