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 相关文章推荐
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
php 不同编码下的字符串长度区分
Sep 26 PHP
php引用地址改变变量值的问题
Mar 23 PHP
探讨php中header的用法详解
Jun 07 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
php模拟post上传图片实现代码
Jun 24 PHP
golang 调用 php7详解及实例
Jan 04 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
YII2框架中actions的作用与使用方法示例
Mar 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
Django中提示消息messages的设置方式
2019/11/15 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
医学专业应届生的自我评价
2014/02/28 职场文书
精彩的广告词
2014/03/19 职场文书
教师旷工检讨书
2015/08/15 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
python数字转对应中文的方法总结
2021/08/02 Python