//namespace是用來區隔識別id,例如常數、函數、類別名稱,但不包含變數 //namespace是以' \ ' 模擬階層概念 //預設的namespac是' \ ',所有其他自定義namespace都是歸在其底下,可以省略, //所以未使用自定義namespace的一般php檔案,識別名稱都不需要加' \ ',但要加也行 //要注意開頭未加上' \ ' 表示相對namespace位置,有加' \ '表示絕對namespace位置 //首個自定義namespcae必須是php檔案的第一列有效程式碼 //關鍵字 'use' 可替過長的命名空間中的 '類別 (class)' 定義簡寫,亦可取別名 (alias), //例如 use a\b\c\Cat 如此即可以Cat存取到目標 ; use a\b\c\Cat as nsCat 如此即可以nsCat存取到目標 //use 定義即使不加' \ '亦是絕對namespace位置 //namespace參考資料 : http://pydoing.blogspot.tw/2013/03/PHP-namespace.html //使用外部檔案以include或require引入, //等同在指定位置貼上該檔案程式碼片段,但其namespace定義已完成,不會在引入處再次作用,除此之外namespace運作規則不變 //include與require差異參考資料: http://syunguo.blogspot.tw/2013/04/phpinclude-require.html //當類別庫愈來愈完整,需要引入的檔案就愈多,一個一個引入太沒效率,這時可使用autoload功能 //autoload功能參考資料: http://justericgg.logdown.com/posts/196891-php-series-autoload //以下namespace使用簡例 //定義namespace namespace a\b\c; //於其中定義識別名稱,此處以常數為例 const Demo = 2; //定義另一個namespace namespace a\b; const Demo = 1; $test = 3; //存取常數內容 //相對namespace位置,以最近的namespace為所在位置指定識別名稱,類似 '目前資料夾' 概念, //於特定namespace中以相對namespace位置指定識別名稱時要注意階層關係 echo Demo; echo c\Demo; //絕對namespace位置,以完整namespace階層指定識別名稱,類似 '資料夾絕對路徑' 概念 echo \a\b\Demo; echo \a\b\c\Demo;
2016年7月12日 星期二
php namesapce 概念 用法 範例
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言