PHP命名空间namespace

//例子1

文件1

namespace home;//命名空间写法

class db{}

var_dump(new home\db());//使用命名空间类的调用方法(在其他页面调用时)

 

//例子2

文件2

namespace home\lib;//命名空间写法

class db{}

var_dump(new home\lib\db());//使用命名空间类的调用方法(在其他页面调用时)

 

//例子3

文件3

namespace home;//命名空间写法

class db{}

function run(){

  echo 'hello word';

}

home\run();//如果想调用这个命名空间下的方法也得加上空间名(在其他页面调用时)

 

//例子4

文件4

namespace home;//命名空间写法

class db{}

function run(){

  echo 'hello word';

}

const NAME = 'xiaoming';

echo(home\NAME);//调用const关键字定义的常量在命名空间下的调用方式(在其他页面调用时)

注意:define();//定义的常量是全局常量,不受命名空间的影响

 

//例子5

文件5

use home\db;//也可用use关键字把命名空间导入,这样就可以直接调用这个类或函数了

var_dump(new db());

 

//例子6

文件6

use home\db;//也可用use关键字把命名空间导入,这样就可以直接调用这个类或函数了

use home\lib\db as db2;//通过给导入的类起别名来解决名字冲突的问题

use function home\run;//导入home命名空间下的run方法,注意在命名空间前面要加上function关键字

use const home\NAME;//导入home命名空间下的NAME常量方法,注意在命名空间前面加上const关键字

var_dump(new db());

var_dump(new db2());

 

//例子7

文件7

namespace home;

include '3.php';

var_dump(new \db());//在有命名空间的文件里调用全局空间的类或方法时,需要在调用类的前面加上 \ 意思是这个类在全局空间下

在有命名空间的文件里调用全局空间的常量或方法时,不需要在前面加 \ 因为方法和常量如果在当前空间找不到的时候就会自动去全局空间找.

run();

echo NAME;

 

posted @ 2017-12-02 20:41  enjie  阅读(110)  评论(0)    收藏  举报