PHP设计模式-命名空间

4343阅读
0评论
0点赞

早起PHP是没有命名空间的,随着工程项目越来越大,代码文件越来越多,组件化引入文件时代码容易冲突,于是PHP5.3开始加入命名空间。 无命名空间例子: test1.php文件代码


test2.php文件代码

demo.php



这时执行demo.php 将会报错。



PHP Fatal error: Cannot redeclare test() (previously declared in D:\wwwroot\dev\public\test\test1.php:5) in D:\wwwroot\dev\public\test\test2.php on line 5
Fatal error: Cannot redeclare test() (previously declared in D:\wwwroot\dev\public\test\test1.php:5) in D:\wwwroot\dev\public\test\test2.php on line 5



 

命名空间的声明
namespace 名称
PHP规定命名空间必须写在代码之前,例子如下 test1.php文件代码

这个时候同时引用就不会出现错误了。

当然,如果你只是test1.php增加了命名空间,你会发现在demo.php中调用test()的时候是调用的test2的。test1的无法调用,就算颠倒方向也是如此。

此事如果test1声明了命名空间,调用方式如下:

注意:如果demo也申明了命名空间test1,那么调用的时候就和原来一样,直接调用test()即可,只有跨命名空间调用的时候才要加上命名空间的名称。

 

评论(0)
暂无评论