php命名空间
Posted Hosea
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php命名空间相关的知识,希望对你有一定的参考价值。
阅读目录
命名空间的介绍
在一个php文件中声明两个相同的函数名的函数, 会报致命错误
<?php function getmsg(){ echo ‘123‘; } function getmsg(){ echo ‘456‘; }
Fatal error: Cannot redeclare getmsg() (previously declared in E:phpstudy_proWWWproject1public est.php:10) in E:phpstudy_proWWWproject1public est.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‘; } ms1getmsg();
123
而且, 使用命名空间可以在当前命名空间调用当前命名空间之下的空间的函数
<?php namespace ms1; function getmsg(){ echo ‘123‘; } ms2getmsg(); 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_proWWWproject1public est.php on line 19
<?php
namespace ms1; const MN = ‘YYF‘; namespace ms2; const MN = ‘YLY‘; echo MN;
YLY
命名空间的三种访问方式
以上是关于php命名空间的主要内容,如果未能解决你的问题,请参考以下文章