PHP 命名空間是什麼意思?我看了協助檔案了,別讓我看了

來源:互聯網
上載者:User
關鍵字 php
非限定名稱,或不包含首碼的類名稱,例如 $a=new foo(); 或 foo::staticmethod();。如果當前命名空間是 currentnamespace,foo 將被解析為 currentnamespace\foo。如果使用 foo 的代碼是全域的,不包含在任何命名空間中的代碼,則 foo 會被解析為foo。 警告:如果命名空間中的函數或常量未定義,則該非限定的函數名稱或常量名稱會被解析為全域函數名稱或常量名稱。

這個話什麼意思?我做實驗理解:
非限定名稱
就是調用function class $的時候不加任何首碼,

就是調用代碼自己所在檔案中的 class 或者 $ 或者 function,這樣理解對嗎?

回複內容:

非限定名稱,或不包含首碼的類名稱,例如 $a=new foo(); 或 foo::staticmethod();。如果當前命名空間是 currentnamespace,foo 將被解析為 currentnamespace\foo。如果使用 foo 的代碼是全域的,不包含在任何命名空間中的代碼,則 foo 會被解析為foo。 警告:如果命名空間中的函數或常量未定義,則該非限定的函數名稱或常量名稱會被解析為全域函數名稱或常量名稱。

這個話什麼意思?我做實驗理解:
非限定名稱
就是調用function class $的時候不加任何首碼,

就是調用代碼自己所在檔案中的 class 或者 $ 或者 function,這樣理解對嗎?

看源碼吧

namespace Project\Model; //本檔案隸屬命名空間Project\Model,如果沒有特別說明,以後出現的類名稱為該空間下的類,如 User表示\Project\Model\User,Table\User表示\Project\Model\Table\Useruse Zend\Table; //調用\Zend\Table這個類,使用該聲明之後再調用$table = new Table();時,這個Table是指\Zend\Tableuse Project\Model\Table PTable; //調用\Project\Model\Table這個類,並指定別名PTable,當調用$table = new PTable();時,這個PTable是指Project\Model\Table//在以上代碼中屬於聲明,不需要特別使用\開頭說明是絕對路徑class User extends \Project\Model { //User無特別聲明,所以該類全名為\Project\Model\User,而\Project\Model因為是反斜線開頭,指\Project\Model這個類(不能寫成extends Model,否則會被認為是\Project\Model\Model)}class \User extends Table\User { //使用了反斜線開頭,因此該類全名就是\User,後面的User沒有斜杠,則是指\Project\Model\Table\User}

由此可見,對於namespace和use語句,其中的類使用的是全名,而在其它地方必須使用反斜線開頭表示類的全名,否則其全名是 反斜線 + 當前的namespace + 類名

說通俗點: 命名空間就是一個檔案的 位置資訊(全域唯一)
比如

 lib/pay/weixin.php lib/order/weixin.php

這兩個 weixin.php的空間就不同
命名空間就是為瞭解決class類名重複問題的
你趕緊別做實驗了,會把你繞暈的

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.