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 相关文章推荐
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
Sep 09 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 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 header()函数使用说明
2008/07/10 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
简述JS浏览器的三种弹窗
2018/07/15 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
python模糊图片过滤的方法
2018/12/14 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
python实现控制台输出彩色字体
2020/04/05 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
2015年元旦活动总结
2014/05/09 职场文书
红色故事演讲稿
2014/05/22 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
2014年商场工作总结
2014/11/22 职场文书
2014年度工作总结报告
2014/12/15 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
小学语文教师研修日志
2015/11/13 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书