PHP中的use关键字概述


Posted in PHP onJuly 23, 2014

很多开源系统如osCommerce框架中,都会在其源码中找到use这个关键字,如osCommerce框架中就在index.php文件中出现了这段源码:

use osCommerce\OM\Core\Autoloader;
use osCommerce\OM\Core\OSCOM;

其实,php的use关键字是自php5.3以上版本引入的。它的作用是给一个外部引用起别名。这是命名空间的一个重要特性,它同基于unix的文件系统的为文件或目录创建连接标志相类似。

PHP命名空间支持三种别名方式(或者说引用):

1、为一个类取别名

2、为一个接口取别名

3、为一个命名空间取别名

这三种方式都是用 use 关键字来完成。下面是三种别名的分别举例:
//Example #1 importing/aliasing with the use operator

<?php
namespacefoo;
useMy\Full\ClassnameasAnother;

//thisisthesameasuseMy\Full\NSnameasNSname
useMy\Full\NSname;

//importingaglobalclass
useArrayObject;

$obj=newnamespace\Another;//instantiatesobjectofclassfoo\Another
$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
$a=newArrayObject(array(1));//instantiatesobjectofclassArrayObject
//withoutthe"useArrayObject"wewouldinstantiateanobjectofclassfoo\ArrayObject
?>

注意的一点是,对于已命名的名字,全称就包含了分隔符,比如 Foo\Bar,而不能用FooBar,而“\Foo\Bar”这个头部的"\"是没必要的,也不建议这样写。引入名必须是全称,并且跟当前命名空间没有程序上的关联

PHP也可以在同一行上申明多个,等同于上面的写法

<?php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
?>

还有值得一说的是,引入是在编译时执行的,因此,别名不会影响动态类,例如:

<?php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
$a = 'Another';
$obj = New $a; // instantiates object of class Another
?>

这里由于给变量$a 赋值了 'Another',编译的时候,就将$a 定位到 Classname 了。

更详细的用法读者可以查阅php手册或关注本站后续相关文章。

PHP 相关文章推荐
关于文本留言本的分页代码
Oct 09 PHP
php短域名转换为实际域名函数
Jan 17 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
深入php list()函数的详解
Jun 05 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
php微信开发之关键词回复功能
Jun 13 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 #PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 #PHP
ThinkPHP权限认证Auth实例详解
Jul 22 #PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 #PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 #PHP
php.ini save_handler 修改不生效的解决办法
Jul 22 #PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 #PHP
You might like
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Python编写一个优美的下载器
2018/04/15 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
Django框架请求生命周期实现原理
2020/11/13 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
政法学院毕业生求职信
2014/02/28 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
公司请假条范文
2014/04/11 职场文书
医生个人年度总结
2015/02/28 职场文书
升职自荐信怎么写
2015/03/05 职场文书