php中namespace及use用法分析


Posted in PHP onDecember 06, 2016

本文实例讲述了php中namespace及use用法。分享给大家供大家参考,具体如下:

namespace(以下简称ns)。在定义了一个ns之后,下面所申明的class、interface、const(不包含variable)都是在申明的ns这个“域”里面的。当引用一个申明了ns的包含文件,想要调用这个ns里面的东西,那必须调整当前脚本也到此ns域,否则就得用全称()包含ns全称):

// inc.php
namespace Foo;
class Bar {}
// 访问Foo的第一种方法,用全称
require 'inc.php';
$foo = new \Foo\Bar();
// 访问Foo的第二种方法
namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句
require 'inc.php';
$foo = new Bar();

use关键字目的是使用ns的别名:

// 比如
use A\Very\Long\Namespace as Ns;
// 这样就可以用Ns来代替A/Very/Long/Namespace这个ns下定义的东西
$foo = new Ns\Foo();

但是在一些开源项目里面经常会看到use Ns\Component这样的用法,没有用as,这让我以前一直在思考use是否还有第二种用法,糟糕的是php的文档里面也没有对此用法有描述,只能靠猜测,后来仔细想过这个问题,得出一个比较靠谱的结论是use可以省略as以及后面的别名而直接把ns最后一个节点的名字当作别名,感觉是不是很像ln -s命令的用法呢:

// 第三种用法
require 'inc.php';
use Foo\Bar; // 这样Bar就等于Foo\Bar了
$foo = new Bar();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
function.inc.php超越php
Dec 09 PHP
PHP字符串 ==比较运算符的副作用
Oct 21 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
四个PHP非常实用的功能
Sep 29 PHP
PHP实现文件上传下载实例
Oct 18 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
使用laravel的migrate创建数据表的方法
Sep 30 PHP
你真的了解PHP中的引用符号(&)吗
May 12 PHP
PHP实现的统计数据功能详解
Dec 06 #PHP
php+ajax简单实现全选删除的方法
Dec 06 #PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 #PHP
thinkPHP中volist标签用法示例
Dec 06 #PHP
探究Laravel使用env函数读取环境变量为null的问题
Dec 06 #PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 #PHP
php中引用符号(&)的使用详细介绍
Dec 06 #PHP
You might like
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
js tab 选项卡
2009/04/26 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
python中二维阵列的变换实例
2014/10/09 Python
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
解决python运行启动报错问题
2020/06/01 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
经典C++面试题一
2016/11/06 面试题
软件测试常见笔试题
2012/02/04 面试题
信息管理员岗位职责
2013/12/01 职场文书
预备党员公开承诺书
2014/05/28 职场文书
关于教师节的广播稿
2014/09/10 职场文书
人工作失职检讨书
2015/05/05 职场文书
新手初学Java网络编程
2021/07/07 Java/Android