资讯专栏INFORMATION COLUMN

Modern-php 书摘(一)namespace

Jason / 2884人阅读

摘要:命名空间命名空间的声明命名空间在文件的顶部,标签后的第一行声明命名空间声明语句以开头,随后是一个空格,然后是命名空间的名称,最后以结尾厂商命名空间即下面声明的是最重要的命名空间必须具有全局唯一性。,在版本下支持类,接口与命名空间导入。

命名空间 命名空间的声明

命名空间在PHP文件的顶部,

命名空间声明语句以namespace开头,随后是一个空格,然后是命名空间的名称,最后以;结尾;

厂商命名空间即下面声明的“Oreilly”是最重要的命名空间;必须具有全局唯一性。


子命名空间


Ps: 同一个命名空间下的所有类、接口、函数没必要在同一个PHP文件中声明;
所以,我们可以在不同的文件中编写属于同一个命名空间的多个类。

import and alias

PHP引入namespace之前,开发者们使用Zend式的类名来解决命名冲突问题;

# Zend_Cloud_DocumentService_Adapter_WindowsAzure_Query => Zend/Cloud/DocumentService/Adapter/WindowsAzure/Query.php

但是你也看到了,太TM长了,不能忍啊!!!
namespace提供了 import和 alias来解决这个问题。
import,alias 在5.3版本下支持类,接口与命名空间导入。5.6开始支持函数与常量导入。

# namespace without alias
send();
$response2 = new SymfonyComponentHttpFoundationResponse("Success",200);
# namespace with Default alias 
use SymfonyComponentHttpFoundationResponse;
$response = new Response("Oops",400);
$response->send();
# namespace with custom alias 
use SymfonyComponentHttpFoundationResponse as Res;
$response = new Res("Oops",400);
$response->send();

注意:

同namespace声明一样,在PHP文件顶部使用use关键字,而且在

开头无需加符号,因为PHP导入是完全限定;

use必须出现在全局作用域中,因为use在编译时使用。

PHP5.6以后可以导入函数和常量;


导入常量:


实用技巧
多重导入

如果想在一个PHP文件中导入多个类、接口、函数或者常量,需要使用多个use语句;

不建议:


建议:


PHP允许一个文件定义多个命名空间【强烈不建议】

全局命名空间

NOTE: 此时,在 Exception类的名称前加前缀是告诉PHP在全局中查找Exception,默认会在当前命名空间中查找;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21502.html

相关文章

  • 品阿里 Java 开发手册有感

    摘要:并发处理书摘第一,线程必须通过线程池来提供,不允许显式创建线程。具体行锁,表锁大家可以自行百度了解。因为它是定义的标准统计行数的预发。二者得保留事故服务器现场。最后感谢小册子阿里巴巴开发手册,感觉不错。 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! showImg(https://segment...

    bang590 评论0 收藏0
  • 实现个可以在可口可乐上写日记的小程序

    摘要:技术栈小程序使用了有赞提供的库功能介绍假设有一天你在深圳的一间便利店里面品尝一瓶可口可乐,这时,你拿出了这个小程序商品手账扫描这瓶可乐的商品条码,然后写下一段留言。 1.技术栈 1.小程序; 2.使用了有赞提供的UI库zan-ui 3.express+mongoose+nginx; 2.功能介绍 showImg(https://segmentfault.com/img/bVbe36...

    econi 评论0 收藏0
  • 实现个可以在可口可乐上写日记的小程序

    摘要:技术栈小程序使用了有赞提供的库功能介绍假设有一天你在深圳的一间便利店里面品尝一瓶可口可乐,这时,你拿出了这个小程序商品手账扫描这瓶可乐的商品条码,然后写下一段留言。 1.技术栈 1.小程序; 2.使用了有赞提供的UI库zan-ui 3.express+mongoose+nginx; 2.功能介绍 showImg(https://segmentfault.com/img/bVbe36...

    tinyq 评论0 收藏0
  • 2018-某熊的技术之路: 做些有趣的产品

    摘要:某熊的技术之路做些有趣的产品年初的时候,我就在想,今年的主题词是什么上半年考虑的较多的是所谓研发效能的提升,下半年却渐渐发现自己更多的会在想产品这两个字。 showImg(https://segmentfault.com/img/remote/1460000016874425); 2018-某熊的技术之路: 做些有趣的产品 年初的时候,我就在想,今年的主题词是什么;上半年考虑的较多的是...

    30e8336b8229 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<