怎么在PHP中使用namespace和use命名空间?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司公司2013年成立,是专业互联网技术服务公司,拥有项目网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元井冈山做网站,已为上家服务,为井冈山各地企业和个人服务,联系电话:13518219792第一个文件 A.php,里边有两个类,命名空间是 a\b\c;
第二个文件 B.php 命名空间 a\b\d;
第三个文件 index.php ,用来使用上边两个文件的类。
比方说我们现在想实例化A.php里的类,该怎么实现呢?
首先要包含这个文件
require_once('A.php');然后
use a\b\c;
? 还是a\b\c\A
? 起初我也是这么认为的。其实这是错的,use应该是这样的,命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 A.php里的Apply类,那么use a\b\c\Apply;
这就相当于引入这个类,接下来再new Apply();
调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;注意:
use
不等于require_once
或者include
,use
的前提是已经把文件包含进当前文件。顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。
有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把A.php和B.php都包含进来,然后
new Apply();
这个时候是会报错的,解决方案就是起别名,比方说use a\b\d\Apply as b;
此时我们new
的时候不应该写成new Apply();
而是new b();
这样就不会发生冲突了。看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。
本文名称:怎么在PHP中使用namespace和use命名空间-创新互联
网站地址:http://kswsj.cn/article/cdsdpp.html