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
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
php限制文件下载速度的代码
Oct 20 PHP
php实现购物车功能(下)
Jan 05 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
PHP中list方法用法示例
Dec 01 PHP
php常用字符函数实例小结
Dec 29 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
PHP反射实际应用示例
Apr 03 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 设计模式之观察者模式介绍
2012/02/22 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Python操作Excel的学习笔记
2021/02/18 Python
班主任新年寄语
2014/04/04 职场文书
高中课程设置方案
2014/05/28 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
环境建议书
2015/02/04 职场文书
市级三好生竞选稿
2015/11/21 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL