<li id="pjr0d"><dl id="pjr0d"><div id="pjr0d"></div></dl></li>
<li id="pjr0d"><dl id="pjr0d"></dl></li>
  • <button id="pjr0d"><input id="pjr0d"></input></button>
    <li id="pjr0d"><dl id="pjr0d"></dl></li>
    <li id="pjr0d"><dl id="pjr0d"><xmp id="pjr0d">
  • <table id="pjr0d"><dl id="pjr0d"><sup id="pjr0d"></sup></dl></table>
  • <rt id="pjr0d"><delect id="pjr0d"><small id="pjr0d"></small></delect></rt>
    
    

    命名空間概述

    (PHP 5 >= 5.3.0, PHP 7, PHP 8)

    什么是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在操作系統(tǒng)中目錄用來將相關(guān)文件分組,對于目錄中的文件來說,它就扮演了命名空間的角色。具體舉個例子,文件 foo.txt 可以同時在目錄 /home/greg/home/other 中存在,但在同一個目錄中不能存在兩個 foo.txt 文件。另外,在目錄 /home/greg 外訪問 foo.txt 文件時,我們必須將目錄名以及目錄分隔符放在文件名之前得到 /home/greg/foo.txt。這個原理應(yīng)用到程序設(shè)計(jì)領(lǐng)域就是命名空間的概念。

    在 PHP 中,命名空間用來解決在編寫類庫或應(yīng)用程序時創(chuàng)建可重用的代碼如類或函數(shù)時碰到的兩類問題:

    1. 用戶編寫的代碼與PHP內(nèi)部的類/函數(shù)/常量或第三方類/函數(shù)/常量之間的名字沖突。
    2. 為很長的標(biāo)識符名稱(通常是為了緩解第一類問題而定義的)創(chuàng)建一個別名(或簡短)的名稱,提高源代碼的可讀性。

    PHP 命名空間提供了一種將相關(guān)的類、函數(shù)和常量組合到一起的途徑。下面是一個說明 PHP 命名空間語法的示例:

    示例 #1 命名空間語法示例

    <?php
    namespace my\name// 參考 "定義命名空間" 小節(jié)

    class MyClass {}
    function 
    myfunction() {}
    const 
    MYCONST 1;

    $a = new MyClass;
    $c = new \my\name\MyClass// 參考 "全局空間" 小節(jié)

    $a strlen('hi'); // 參考 "使用命名空間:后備全局函數(shù)/常量" 小節(jié)

    $d = namespace\MYCONST// 參考 "namespace操作符和__NAMESPACE__常量” 小節(jié)

    $d __NAMESPACE__ '\MYCONST';
    echo 
    constant($d); // 參考 "命名空間和動態(tài)語言特征" 小節(jié)
    ?>

    注意: 命名空間名稱大小寫不敏感。

    注意:

    名為 PHP 的命名空間,以及以這些名字開頭的命名空間 (例如 PHP\Classes)被保留用作語言內(nèi)核使用, 而不應(yīng)該在用戶空間的代碼中使用。