扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
php命名空间的缺点有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
为海南等地区用户提供了全套网页设计制作服务,及海南网站建设行业解决方案。主营业务为网站设计制作、成都做网站、海南网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!定义命名空间
必须是第一个语句,前面不能有任何语句,注释可以。
必须是绝对命名空间。
namespace bookrpg\config; //或者 namespace bookrpg\config { } namespace \bookrpg\config; //错误,不能有前导\
导入命名空间
必须是绝对命名空间。
use bookrpg\config\ClassName; use \bookrpg\config\ClassName; //可以有前导\,但不建议加 use bookrpg\config\ClassName as NewClassName; use Exception; use \Exception; //可以有前导\,但不建议加
使用命名空间
使用绝对命名空间
$cls = new \bookrpg\config\ClassName(); class MyException extends \Exception { }
使用相对命名空间
namespace bookrpg { //等同于new \bookrpg\config\ClassName(); $cls = new config\ClassName(); //错误,php会认为是\bookrpg\Exception,而不是全局类Exception $ex = new Exception(); }
怪异的地方
C++、Java、C#都有相似的命名空间概念,而php的命名空间不跟随大流,有自己的一套独立的思想,对于先入为主的人来来说就显得怪异和令人迷惑。
命名空间中居然有反斜杠?
点号(.)已经被用作字符串连接符了,又要区分绝对和相对命名空间,new .a.b.c()太不美观,所以选择反斜杠吧。
一旦使用了命名空间,使用全局类也要加上“\”或者use一下,累不累呀?
没办法,为了严格类比文件系统的概念,也为了随便定义类名,而不用担心类名冲突。
既然是严格类比文件系统,为什么定义和导入命名空间的时候,前面不加\呢?
只能说,php的设计者不是完美主义者。
但php的命名空间确实缺乏逻辑完美性:
前导\的使用不统一,同样是绝对命名空间,定义的时候不允许用,导入的时候却允许用。
即使是全局类,在非全局命名空间下,也必须使用前导\,而全局函数和变量又不受此限制。
使用建议
定义和导入命名空间的时候,统一不加前导\
所有的类都使用use导入,包括全局类,只命名空间类,有冲突的就as一下
禁止直接使用相对命名空间
一、phpStudy,是一个新手入门最常用的开发环境。二、WampServer,WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包;四、MAMP,MAMP分为两种MAMP和MAMP Pro for Mac。五、宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统。六、UPUPW,UPUPW是目前Windows平台下最具特色的Web服务器PHP套件。
关于php命名空间的缺点有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流