1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          命名空間(PHP中命名空間是怎樣的存在以及非限定名稱、限定名稱、完全限定名稱的區別)

          來源:互聯網轉載 時間:2024-05-13 12:26:58

          PHP中命名空間是怎樣的存在

          子命名空間

          命名空間本身就像目錄一樣,所以命名空間當然也是可以定義子命名空間的,真的就和操作系統的各種目錄層級是完全一樣的。我們通過簡單的例子來看看。首先還是創建三個php文件,其中3-2和3-2-1是使用的相同的二級命名空間,3-2-1在FILE32的基礎上繼續向下擴展了第三級的命名空間FILE321。他們都是MyProject命名空間的子命名空間。

          // file3-1.php

          namespace MyProject\FILE31;

          function testA31(){
          echo 'FILE31\testA()', PHP_EOL;
          }


          // file3-2.php
          namespace MyProject\FILE32;

          const CONST_A32 = "file3-2";
          function testA32(){
          echo 'FILE32\testA()', PHP_EOL;
          }

          class objectA32{
          function test(){
          echo 'FILE32\ObjectA', PHP_EOL;
          }
          }

          // file3-2-1.php

          namespace MyProject\FILE32\FILE321;

          function testA321(){
          echo 'FILE321\testA()', PHP_EOL;
          }

          接下來的使用就很簡單了,和使用一級命名空間一樣,直接使用use進行導入就可以了。

          // 子命名空間
          require 'namespace/file3-1.php';
          require 'namespace/file3-2.php';
          require 'namespace/file3-2-1.php';

          use MyProject\FILE31;
          use MyProject\FILE32;
          use MyProject\FILE32\FILE321;

          FILE31\testA31(); // FILE31\testA()
          FILE32\testA32(); // FILE32\testA()
          FILE32\FILE321\testA321(); // FILE321\testA()
          FILE321\testA321(); // FILE321\testA()

          同一文件中定義多個命名空間

          PHP是允許在一個文件中定義多個命名空間的,但是并不推薦這么做,因為這樣可能會帶來各種未知的混亂。在這里,我們只要了解到可以這樣使用就行了,在日常的開發中還是盡量要避免。

          // file4.php
          namespace FILE41;

          function testA41(){
          echo 'FILE41\testA()', PHP_EOL;
          }

          namespace FILE42;

          function testA42(){
          echo 'FILE42\testA()', PHP_EOL;
          }

          在使用中當然也和其他命名空間的使用沒什么兩樣,直接use使用即可。

          // 一個文件中多個命名空間
          require 'namespace/file4.php';

          use FILE41, FILE42;

          FILE41\testA41(); // FILE41\testA()
          FILE42\testA42(); // FILE42\testA()

          非限定名稱、限定名稱、完全限定名稱

          不要被術語嚇到,這三個術語其實非常好理解。

          • 非限定名稱,名稱中不包含命名空間分隔符的標識符,例如 Foo 。
          • 限定名稱,名稱中含有命名空間分隔符的標識符,例如 Foo\Bar 。
          • 名稱中包含命名空間分隔符,并以命名空間分隔符開始的標識符,例如 \Foo\Bar。namespace\Foo 也是一個完全限定名稱。

          直接用例子來說就非常清晰了。

          // 非限定名稱、限定名稱、完全限定名稱
          use MyProject\FILE32\objectA32 as obj32;

          $o = new obj32(); // 非限定名稱
          $o->test(); // FILE32\ObjectA

          $o = new FILE32\objectA32(); // 限定名稱
          $o->test(); // FILE32\ObjectA

          $o = new \MyProject\FILE32\objectA32(); // 完全限定名稱
          $o->test(); // FILE32\ObjectA

          namespace關鍵字和__NAMESPACE__常量

          • namesapce,顯式訪問當前命名空間或子命名空間中的元素。它等價于類中的 self 操作符。
          • NAMESPACE,包含當前命名空間名稱的字符串。在全局的,不包括在任何命名空間中的代碼,它包含一個空的字符串。

          也是很簡單的內容吧,直接來看例子。

          // file5.php
          namespace FILE5;

          function test(){
          echo __NAMESPACE__ . ': test()', PHP_EOL;
          }

          // test.php
          namespace Pro;
          // namespace與__NAMESPACE__
          require 'namespace/file5.php';

          function test(){
          echo __NAMESPACE__ . ': test()', PHP_EOL;
          }

          namespace\test(); // Pro: test()

          \FILE5\test(); // FILE5: test()

          到此,關于“PHP中命名空間是怎樣的存在以及非限定名稱、限定名稱、完全限定名稱的區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!

          標簽:命名空間-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          (資料圖片)最新更新:針對暴雪與網易終止合作后游戲廠商爭取代理權一事,據媒體最新消息稱,騰訊方面回應,內部暫時沒有相關消息,暴雪版權的問題建議以暴雪官方回復為準。米哈游則表示,米哈游接手暴雪版權代理為假消息,米哈游自成立以來主打自研游戲,目前尚未有代理運營的游戲項目。11月17日,#暴雪單方宣布與網易停止合作#上熱搜,暴雪娛樂發聲明稱,由于同網易的現有授權協議將在2023年1月23日到期,將暫停在...

          (資料圖片僅供參考)最近小編看到大家都在討論管寧華歆是個什么樣的人相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于管寧華歆是個什么樣的人事件的相關信息,我們一起來看一下吧!1、管寧的特點——淡泊名利,性淡氣清,愛憎分明。管寧,字幼安。北??ぶ焯摽h人。與華歆、邴原并稱為"一龍"。漢末天下大亂時,與邴原及王烈等人至遼東避亂。在當地只談...

          銀行u盾丟了可以補辦嗎?u盾失可以補領。以工商銀行為例子: u盾資格證書遺失后,必須由本人帶上有效的身份證和開通電子銀行的銀行卡,到地區隨意服務網點拆換u盾資格證書并進行證書下載。1、u盾報失期內,如必須申請辦理小額付款、轉賬業務,可試著通過網上銀行、手機銀行等方式開通"短消息認證支付”后絞易;2、各地區不一樣自助機器使用業務有差別,實際作用及實際操作要以機器網頁頁面展示為標...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>