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 相关文章推荐
全文搜索和替换
Oct 09 PHP
模仿OSO的论坛(五)
Oct 09 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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解决约瑟夫环示例
2014/04/09 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
25道Java面试题集合
2013/05/21 面试题
高二化学教学反思
2014/01/30 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
二审答辩状格式
2015/05/22 职场文书
身份证丢失证明
2015/06/19 职场文书