PHP命名空间(namespace)的使用基础及示例


Posted in PHP onAugust 18, 2014

PHP的命名空间(namespace)是PHP 5.3中加入最重要的一个新特性,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。

一. PHP的命名空间主要解决三种冲突的问题:常量,函数,类

通俗理解:namespace就相当于是用来建一个目录,将namespace下面的代码放在该目录里面,与外面的区分开来。

/*
|---------------------------------
|namespace示例
|@黑眼诗人 <www.chenwei.ws>
|---------------------------------
*/
namespace myself;
function var_dump()
{
  echo 100;
}
var_dump();    //调用自定义函数(相对路径方式)
\myself\var_dump();  //调用自定义函数(绝对路径方式) 
\var_dump(100);     //调用全局的(系统的函数)

注意:namespace 之前不能有任何代码,除了declare();多个文件可以使用同一个命名空间,但同一命名空间下定义的内容是不能冲突的。namespace支持子命名空间,如:namespace \myself\good,相当于多级目录的概念。

二. 同一文件中存在多个命名空间的情况

1.

/**
 * 同一文件中若使用了多个命名空间,一般写法
 */
namespace nihao\shijie;
function demo()
{
//.......
}
namespace hello\world;
function test()
{
  //........
}

\nihao\shijie\demo();
\hello\world\test();

2.

/**
 * 同一文件中若使用了多个命名空间,建议大括号扩起来
 */
namespace nihao\shijie{
function test_one()
{
  //......
};
}
namespace hello\world{
function test_two()
{
  //........
}
}
\nihao\shijie\test_one();
\hello\world\test_two();

同一文件内使用多个命名空间,主要用于项目将多个PHP脚本合并在同一文件中,实际中不提倡使用!

三. 名称解析规则(几个概念)

1.非限定名称:名称中不包含命名空间分割符,如:myself

2.限定名称:名称中含有命名空间分割符,如:nihao\shijie

3.完全限定名称:名称中包含分割符,并以命名空间分割符开始,如:\nihao\shijie  (即绝对路径的概念)

PHP 相关文章推荐
php中常用的预定义变量小结
May 09 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
PHP类的封装与继承详解
Sep 29 PHP
深入php内核之php in array
Nov 10 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
mac环境中使用brew安装php5.5.15
Aug 18 #PHP
PHP 正则表达式常用函数
Aug 17 #PHP
PHP常用正则表达式集锦
Aug 17 #PHP
学习php中的正则表达式
Aug 17 #PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 #PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 #PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 #PHP
You might like
咖啡的植物学知识
2021/03/03 咖啡文化
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php汉字转拼音的示例
2014/02/27 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP代码加密的方法总结
2020/03/13 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue实现计步器功能
2019/11/01 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
详解python进行mp3格式判断
2016/12/23 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
三八妇女节演讲稿
2014/05/27 职场文书
绿色出行口号
2014/06/18 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
写给老师的感谢信
2015/01/20 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js
golang生成vcf通讯录格式文件详情
2022/03/25 Golang