PHP命名空间namespace及use的简单用法分析


Posted in PHP onAugust 03, 2018

本文实例讲述了PHP命名空间namespace及use的简单用法。分享给大家供大家参考,具体如下:

最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这是为了提升自己的编程水平,同时能把平时学的零散的东西糅合在一块熟练应用。但是开发一个框架根本不知道如何做起,先开发什么,虽然php的框架也不少,但是都是如何应用,没有文档和视频可以学习,这是让我特别郁闷的事情,相信不少想自己开发框架玩的小伙伴都有类似的感受,郁闷归郁闷,自己还是动手做了,做的时候困难和想象的一样难,从一开始就有点蒙了。

那就是命名空间的使用及use引入。看了很多网上的说法,也看了官方文档,意思大概明白,也很好理解,命名空间还好说,给这个空间起个名字嘛,但是use具体操作起来就不行 了,怎么也搞不通。后来看一个yii学习视频才恍然明白。

比方说建三个文件。

第一个文件 A.php,里边有两个类,命名空间是 a\b\c;

<?php
namespace a\b\c;
class Apply{
  function get_info(){
    echo 'this is A Apply';
  }
}
class C{
  function info(){
    echo 'this is info';
  }
}

第二个文件 B.php  命名空间 a\b\d;

<?php
namespace a\b\d;
class Apply{
  function get_info(){
    echo 'this is B Apply';
  }
}

第三个文件 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程序设计有所帮助。

PHP 相关文章推荐
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php中explode函数用法分析
Nov 15 PHP
php绘制一条直线的方法
Jan 24 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
php json转换相关知识(小结)
Dec 21 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 PHP
PHP 时间处理类Carbon
May 20 PHP
PHP后台实现微信小程序登录
Aug 03 #PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 #PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 #PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 #PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 #PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 #PHP
PHP实现的分解质因数操作示例
Aug 01 #PHP
You might like
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
laravel请求参数校验方法
2019/10/10 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
sublime text 3配置使用python操作方法
2017/06/11 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
python脚本和网页有何区别
2020/07/02 Python
浅析python实现动态规划背包问题
2020/12/31 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
个人自我鉴定范文
2013/10/04 职场文书
零件设计自荐信范文
2013/11/27 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
环保小标语
2014/06/13 职场文书
爱牙日活动总结
2014/08/29 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
红色影片观后感
2015/06/18 职场文书
超市员工管理制度
2015/08/06 职场文书
微信早安问候语
2015/11/10 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript