php命名空间
admin
2023-06-21 07:02:04
0

php命名空间类似于java当中的包,为了更好的管理代码。

命名空间的定义最好与文件路径相对应,方便查找。



对于一个命名空间,只有类、接口、函数和常量会被包含在命名空间中。

定义命名空间


123456namespace MyProject;const CONNECT_OK = 1;class Connection { /* ... */ }function connect() { /* ... */ }?>


当然,也可以使用花括号来包含所有需要的内容,就像这样。


12345678910111213namespace MyProject {const CONNECT_OK = 1;class Connection { /* ... */ }function connect() { /* ... */ }}namespace { // 全局代码session_start();$a = MyProject\connect();echo MyProject\Connection::start();}?>



使用命名空间


 PHP 命名空间中的类名可以通过三种方式引用:

  1. 非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo。 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。

  2. 限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo。

  3. 完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。在这种情况下,foo 总是被解析为代码中的文字名(literal name)currentnamespace\foo。

  4. use关键词是自动加载命名空间类




相关内容

热门资讯

双汇致歉 【大河财立方消息】 5月28日,双汇发布致歉声明称,近日,黑龙江省市场监督管理局公示望奎双汇北大荒食...
为了更多生命的春天——河南和塞... 如果说,豫塞两地的临床防治需求是跨国医学合作的前提,那么共建“一带一路”倡议为双方深化医疗科技合作提...
公共服务随人走 在常住地也可享... 随迁子女仅凭居住证入学、高血压等10种慢特病费用跨省直接结算……公共服务随人走 在常住地也可享这些保...
合力奋战二季度丨不沿边不靠海,... 5月26日,记者走进位于鹤壁市鹤山区的鹤壁内陆港(豫煤交易中心鹤壁园区),双层叠放的集装箱阵列格外醒...
法院判了:全体业主赔偿陈女士1... 近日,湖北宜昌长阳土家族自治县人民法院审结一起因高空抛物引起的纠纷。一个从楼上掉下来的矿泉水瓶,砸坏...
爱尔眼科递表港交所!年收入超2... 【大河财立方消息】 5月27日,爱尔眼科医院集团股份有限公司向港交所提交上市申请。据招股书,爱尔眼科...
南部战区新闻发言人就荷兰军舰侵... 南部战区新闻发言人翟士臣就荷兰军舰侵权行为发表谈话。南部战区新闻发言人翟士臣海军大校表示,5月27日...
伊朗称对美国空军基地实施了打击 伊朗塔斯尼姆通讯社5月28日报道,伊朗革命卫队称,为回应阿巴斯港机场附近的袭击事件,已对美国空军基地...
子公司猪肉抗生素超标37.5倍... 5月28日,河南双汇投资发展股份有限公司发布致歉声明:近日,黑龙江省市场监督管理局公示望奎双汇北大荒...
杭州别墅藏代孕窝点,官方通报 今天,浙江省杭州市临平区联合调查处置组发布情况通报。针对群众反映临平区某小区一住宅内有人非法从事试管...