内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

php命名空間use關(guān)鍵字該如何使用

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)php命名空間use關(guān)鍵字該如何使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站,為您提供重慶網(wǎng)站建設(shè)公司、網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)成都搬家公司等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場的競爭激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

在php中,use關(guān)鍵字可以用來導(dǎo)入命名空間,語法“use namespace;”;也可用來導(dǎo)入函數(shù)和常量,并為它們?cè)O(shè)置別名,語法“use 命名空間 as 別名;”。

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

什么是命名空間?

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

命名空間的定義

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

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

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

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

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

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

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

namespace 命名空間名;

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

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

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

使用命名空間:別名/導(dǎo)入

PHP 允許通過別名引用或?qū)氲姆绞絹硎褂猛獠康拿臻g,這是命名空間的一個(gè)重要特征。這有點(diǎn)類似于在類 unix 文件系統(tǒng)中可以創(chuàng)建對(duì)其它的文件或目錄的符號(hào)連接。

使用 use 關(guān)鍵字可以實(shí)現(xiàn)命名空間的導(dǎo)入,從 PHP5.6 開始允許導(dǎo)入函數(shù)和常量,并為它們?cè)O(shè)置別名。語法格式如下:

use namespace;

在 PHP 中,別名是通過操作符 use 與 as 來實(shí)現(xiàn)的,語法格式如下:

use 命名空間 as 別名;

【示例】使用 use 操作符導(dǎo)入和使用別名。

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

注意:對(duì)命名空間中的名稱(包含命名空間分隔符的完全限定名稱,如 Foo\Bar ,以及相對(duì)的不包含命名空間分隔符的全局名稱,如 FooBar)來說,前導(dǎo)的反斜杠是不必要的也是不推薦的,因?yàn)閷?dǎo)入的名稱必須是完全限定的,不會(huì)根據(jù)當(dāng)前的命名空間作相對(duì)解析。

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

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

導(dǎo)入操作是編譯執(zhí)行的,但動(dòng)態(tài)的類名稱、函數(shù)名稱或常量名稱則不是。

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another; // 實(shí)例化一個(gè) My\Full\Classname 對(duì)象
    $a = 'Another';
    $obj = new $a;      // 實(shí)際化一個(gè) Another 對(duì)象
?>

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

上述就是小編為大家分享的php命名空間use關(guān)鍵字該如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:php命名空間use關(guān)鍵字該如何使用
URL標(biāo)題:http://www.rwnh.cn/article40/pdepeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、定制網(wǎng)站、網(wǎng)站改版軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
聂荣县| 阿尔山市| 年辖:市辖区| 宁海县| 桑日县| 连江县| 南华县| 班戈县| 平阴县| 汉源县| 灵台县| 周至县| 阿拉善右旗| 岳阳县| 拜城县| 清水县| 蚌埠市| 三都| 谢通门县| 塔河县| 惠州市| 义乌市| 汶川县| 阳西县| 门源| 浪卡子县| 高青县| 都江堰市| 佳木斯市| 库车县| 石屏县| 永川市| 共和县| 锡林郭勒盟| 龙海市| 阜平县| 孟州市| 乐昌市| 彭泽县| 大理市| 揭东县|