阅读目录
命名空间的介绍
在一个php文件中声明两个相同的函数名的函数, 会报致命错误
<?php function getmsg(){ echo '123'; } function getmsg(){ echo '456'; }
Fatal error: Cannot redeclare getmsg() (previously declared in E:\phpstudy_pro\WWW\project1\public\test.php:10) in E:\phpstudy_pro\WWW\project1\public\test.php on line 15
这时候我们可以使用命名空间来解决这个问题
<?php namespace ms1; function getmsg(){ echo '123'; } namespace ms2; function getmsg(){ echo '456'; }getmsg();
这样就相当于分别在两个空间里定义相同名的函数
但是直接调用getmsg函数的时候会直接当前空间下离它最近的函数:
456
如果要访问第一个名称空间中的函数则:
<?php namespace ms1; function getmsg(){ echo '123'; } namespace ms2; function getmsg(){ echo '456'; } \ms1\getmsg();
123
而且, 使用命名空间可以在当前命名空间调用当前命名空间之下的空间的函数
<?php namespace ms1; function getmsg(){ echo '123'; } \ms2\getmsg(); namespace ms2; function getmsg(){ echo '456'; }
456
命名空间只对类, 函数, 常量起作用, 而且常量必须是const定义的常量, 而不是define定义的常量
<?php namespace ms1; define('MN', 'YYF'); namespace ms2; define('MN', 'YLY');
Notice: Constant MN already defined in E:\phpstudy_pro\WWW\project1\public\test.php on line 19
<?php namespace ms1; const MN = 'YYF'; namespace ms2; const MN = 'YLY'; echo MN;
YLY
命名空间的三种访问方式
来源:https://www.cnblogs.com/yuyafeng/p/12243220.html