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 相关文章推荐
smarty实例教程
Nov 19 PHP
PHP 文件类型判断代码
Mar 13 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
PHP安全配置详细说明
Sep 26 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php简单防盗链实现方法
Jul 29 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
thinkphp5实现微信扫码支付
Dec 23 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Python语言描述最大连续子序列和
2017/12/05 Python
python监控键盘输入实例代码
2018/02/09 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python读写配置文件操作示例
2019/07/03 Python
Python datetime包函数简单介绍
2019/08/28 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
python list的index()和find()的实现
2020/11/16 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
材料员岗位职责
2014/03/13 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
高中教师个人工作总结
2015/02/10 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python