php命名空間:非限定名稱、限定名稱、完全限定名稱執行個體詳解

來源:互聯網
上載者:User
在php命名空間中,需要知道關於空間三種名稱的術語: 非限定名稱、限定名稱、完全限定名稱,以及PHP是怎樣解析它們的。官方文檔說得非常好,就直接拿來套了,瞭解它們對學習後面的內容很有協助。前面瞭解到命名空間的子空間和公用空間,命名空間的調用文法像檔案路徑一樣是有道理的,它允許我們自訂子空間來描述各個空間之間的關係。

命名空間中的三個名稱的術語如下所示:

1.非限定名稱,或不包含首碼的類名稱,例如 $comment = new Comment();。如果當前命名空間是Blog\Article,Comment將被解析為Blog\Article\Comment。如果使用Comment的代碼不包含在任何命名空間中的代碼(全域空間中),則Comment會被解析為Comment。

2.限定名稱,或包含首碼的名稱,例如 $comment = new Article\Comment();。如果當前的命名空間是Blog,則Comment會被解析為Blog\Article\Comment。如果使用Comment的代碼不包含在任何命名空間中的代碼(全域空間中),則Comment會被解析為Comment。

3.完全限定名稱,或包含了全域首碼操作符的名稱,例如 $comment = new \Article\Comment();。在這種情況下,Comment總是被解析為代碼中的文字名(literal name)Article\Comment。

其實可以把這三種名稱類比為檔案名稱(例如 comment.php)、相對路徑名(例如 ./article/comment.php)、絕對路徑名(例如 /blog/article/comment.php),這樣可能會更容易理解。

在這裡建立一個Blog 空間,使用非限定名稱,表示當前Blog空間,執行個體化以後這個調用將被解析。使用限定名稱,表示相對於Blog空間,執行個體化以後這個調用將被解析成 Blog\Article\Comment(),注意類前面沒有反斜線。使用完全限定名稱,表示絕對於Blog空間,執行個體化以後這個調用將被解析,注意類前面有反斜線和沒有反斜線區別。

其範例程式碼如下所示:

<?php//建立空間Blognamespace Blog;class Comment { }//非限定名稱,表示當前Blog空間//這個調用將被解析成 Blog\Comment();$blog_comment = new Comment();//限定名稱,表示相對於Blog空間//這個調用將被解析成 Blog\Article\Comment();$article_comment = new Article\Comment(); //類前面沒有反斜杆\//完全限定名稱,表示絕對於Blog空間//這個調用將被解析成 Blog\Comment();$article_comment = new \Blog\Comment(); //類前面有反斜杆\//完全限定名稱,表示絕對於Blog空間//這個調用將被解析成 Blog\Article\Comment();$article_comment = new \Blog\Article\Comment(); //類前面有反斜杆\//建立Blog的子空間Articlenamespace Blog\Article;class Comment { }?>

其實之前介紹的一直在使用非限定名稱和完全限定名稱,現在它們終於有名稱了。

命名空間中的三個名稱和術語先瞭解到這裡,下一章節將會帶朋友們瞭解命名空間中的別名和匯入。

【相關教程推薦】

1. 《php.cn獨孤九賤(4)-php視頻教程》

2. 視頻教程:命名空間:我們雖然同名同性,但卻屬於不同時空

3. php編程從入門到精通全套教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.