命名空間使用範圍存取方式
*
命名空間
# 從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以看到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,
對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案foo.txt 可以同時在目錄/home/greg 和/home/other 中
存在,但在同一個目錄中不能存在兩個foo.txt文件。另外,在目錄/home/greg 外存取foo.txt 檔案時,我們必須將目錄名稱以及目
錄分隔符號放在檔案名稱之前得到/home/greg/foo .txt。這個原理應用在程式設計領域就是命名空間的概念。
http://php.net/manual/zh/language.namespaces.php
*
# ThinkPHP5採用命名空間方式定義和自動載入類別庫文件,有效的解決了多模組和Composer類別庫之間的命名空間衝突問題,並且實現了更加
高效率的類別庫自動載入機制。
http://www.kancloud.cn/manual/thinkphp5/118014
*
*
<?php /** * 命名空间 使用范围 访问方式 * * 命名空间 * 从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组, * 对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中 * 存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目 * 录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。 * http://www.php.cn/ * * ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加 * 高效的类库自动加载机制。 * http://www.php.cn/ * * function 适用于命名空间 * const 适用于命名空间 * class 适用于命名空间 * define 不适用于命名空间 * * 访问方式: * 1、非限定名称访问方式 * 2、完全限定名称访问方式 * 3、限定名称访问方式(相对路径) */ /** * kj1,命名空间1 */ namespace kj1; function getmsg(){ echo '123<br>'; } //define('MN','iwanghang'); const MN="iwanghang<br>"; class Animals{ public $obj='cat<br>'; } /** * kj2,命名空间2 */ namespace kj2; use kj1\Animals; function getmsg(){ echo '456<br>'; } //define('MN','iwanghang0'); const MN="iwanghang0<br>"; /** * 访问方式:1、非限定名称访问方式 */ getmsg(); /** * 访问方式:2、完全限定名称访问方式 */ \kj1\getmsg(); \kj2\getmsg(); echo \kj1\MN; $animal = new Animals(); echo $animal->obj; /** * 访问方式:3、限定名称访问方式 */ //echo kj1\getmsg(); // 会报错,function kj2\kj1\getmsg() 找不到这个函数 /** * 访问方式:3、限定名称访问方式 */ namespace kj3; echo kj4\getmsg(); // 打印结果:789 namespace kj3\kj4; function getmsg(){ echo '789<br>'; }### 以上就是Android程式設計師學PHP開發(30)-ThinkPHP5.0(2)命名空間-PhpStorm的內容,更多相關內容請關注PHP中文網(www.php.cn)! ###