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 数学运算验证码实现代码
Oct 11 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
thinkphp的c方法使用示例
Feb 24 PHP
PHP的cURL库简介及使用示例
Feb 06 PHP
php跨服务器访问方法小结
May 12 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
PHP中number_format()函数的用法讲解
Apr 08 PHP
PHP sdk实现在线打包代码示例
Dec 09 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
PHP网站基础优化方法小结
2008/09/29 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python如何生成各种随机分布图
2018/08/27 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python小进度条显示代码
2019/03/05 Python
python输出带颜色字体实例方法
2019/09/01 Python
python创建学生成绩管理系统
2019/11/22 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
python 装饰器的基本使用
2021/01/13 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
迟到检讨书400字
2014/01/13 职场文书
党员十八大心得体会
2014/09/12 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
婚礼答谢词
2015/01/04 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
PHP新手指南
2021/04/01 PHP
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python