中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php命名空間use關鍵字該如何使用

發布時間:2021-10-08 09:19:37 來源:億速云 閱讀:111 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關php命名空間use關鍵字該如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在php中,use關鍵字可以用來導入命名空間,語法“use namespace;”;也可用來導入函數和常量,并為它們設置別名,語法“use 命名空間 as 別名;”。

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

什么是命名空間?

從廣義上來說,命名空間是一種封裝事物的方法,在很多地方都可以見到這種抽象概念。例如,在操作系統中目錄用來將相關文件分組,對于目錄中的文件來說,它就扮演了命名空間的角色。

命名空間的定義

PHP 中命名空間(namespace)是在 PHP5.3 中加入的,如果你了解過 C++ 的話,那命名空間就不算什么新事物了。不過命名空間在 PHP 當中還是相當重要的。

PHP 命名空間可以解決以下兩類問題:

  • 用戶編寫的代碼與 PHP 內部的類/函數/常量或第三方類/函數/常量之間的命名沖突;

  • 為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,以提高源代碼的可讀性。

定義命名空間(使用關鍵字 namespace)

雖然任意合法的 PHP 代碼都可以包含在命名空間中,但只有類(包括抽象類和 traits)、接口、函數和常量等類型的代碼受命名空間的影響。

命名空間的定義需要通過關鍵字 namespace 來聲明,語法格式如下:

namespace 命名空間名;

【示例】下面我們來演示一下如何定義了命名空間:

<?php
    namespace MyProject;    // 定義名為 MyProject 的命名空間。
    const CONNECT_OK = 1;
    class Myclass {
        /* ... */
    }
    function Myfunc() {
        /* ... */
    }
?>

在聲明命名空間之前除了用于定義源文件編碼方式的 declare 語句外,所有非 PHP 代碼(包括空白符)都不能出現在命名空間聲明之前。

使用命名空間:別名/導入

PHP 允許通過別名引用或導入的方式來使用外部的命名空間,這是命名空間的一個重要特征。這有點類似于在類 unix 文件系統中可以創建對其它的文件或目錄的符號連接。

使用 use 關鍵字可以實現命名空間的導入,從 PHP5.6 開始允許導入函數和常量,并為它們設置別名。語法格式如下:

use namespace;

在 PHP 中,別名是通過操作符 use 與 as 來實現的,語法格式如下:

use 命名空間 as 別名;

【示例】使用 use 操作符導入和使用別名。

<?php
    namespace foo;
    use My\Full\Classname as Another;
    // 下面的例子與 use My\Full\NSname as NSname 相同
    use My\Full\NSname;
    // 導入一個全局類
    use ArrayObject;
    // 導入一個函數
    use function My\Full\functionName;
    // 導入一個函數并定義別名
    use function My\Full\functionName as func;
    // 導入一個常量
    use const My\Full\CONSTANT;
    $obj = new namespace\Another;   // 實例化 foo\Another 對象
    $obj = new Another;             // 實例化 My\Full\Classname 對象
    NSname\subns\func();            // 調用 My\Full\NSname\subns\func 函數
    $a = new ArrayObject(array(1)); // 實例化 ArrayObject 對象
                                    // 如果不使用 "use \ArrayObject" ,則實例化一個 foo\ArrayObject 對象
    func();                         // 調用 My\Full\functionName 函數
    echo CONSTANT;                  // 打印 My\Full\CONSTANT 常量
?>

注意:對命名空間中的名稱(包含命名空間分隔符的完全限定名稱,如 Foo\Bar ,以及相對的不包含命名空間分隔符的全局名稱,如 FooBar)來說,前導的反斜杠是不必要的也是不推薦的,因為導入的名稱必須是完全限定的,不會根據當前的命名空間作相對解析。

為了簡化操作,PHP 還支持在一行中導入多個命名空間,中間使用,隔開,示例代碼如下:

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another;     // 實例化 My\Full\Classname 對象
    NSname\subns\func();    // 調用 My\Full\NSname\subns\func 函數
?>

導入操作是編譯執行的,但動態的類名稱、函數名稱或常量名稱則不是。

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another; // 實例化一個 My\Full\Classname 對象
    $a = 'Another';
    $obj = new $a;      // 實際化一個 Another 對象
?>

另外,導入操作只影響非限定名稱和限定名稱。完全限定名稱由于是確定的,故不受導入的影響。

上述就是小編為大家分享的php命名空間use關鍵字該如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

洛宁县| 北票市| 枞阳县| 克拉玛依市| 卢湾区| 逊克县| 沙田区| 德格县| 扎囊县| 枝江市| 云和县| 定远县| 海晏县| 柳江县| 宝山区| 夏河县| 南城县| 金阳县| 集安市| 绥江县| 鲜城| 微山县| 高雄市| 铜陵市| 祁东县| 富宁县| 西贡区| 高陵县| 司法| 元阳县| 东兰县| 普宁市| 剑阁县| 南漳县| 安吉县| 朝阳市| 涞水县| 大英县| 永泰县| 务川| 仪陇县|