PHP中命名空间的使用例子


Posted in PHP onMarch 22, 2019

程序语言中的命名空间指的是一种特殊的作用域,它包含处于该作用域下的标识符,同时它本身也是一种标识符。可以把命名空间与操作系统的目录对应起来。一个命名空间相当于一个目录,命名空间里的类,函数,常量,相当于目录里的文件。同一个目录(命名空间)里的文件名不能相同,但是不同的目录里可以有相同名字的文件。

使用命名空间可以解决名字冲突,比如定义了一个类,正好这个类与PHP内部的类或是include进来的一个类库里的类重名的时候。同时,命名空间还可以提高代码可读性,命名空间有一个别名功能,它可以帮你给一个长达十几个字符的类名起一个别名,从而缩短代码,也不用担心与其他空间的命名冲突。

PHP中,只有类、函数、常量会受命名空间影响,php 5.3以后可以使用const关键字来定义常量,5.3这前使用define,命名空间只对const关键字有效。

如下php代码:在file.php文件中,用namespace定义了一个常量,一个函数和一个类:(file1.php)

<?php
namespace MyProject; //定义命名空间MyProject
const A = 1;
function MyFunc(){
 return __FUNCTION__;
}
class MyClass{
 static function MyMethod(){
 return __METHOD__;
 }
}
?>

定义了命名空间后,使用的时候就要加上命名空间的名称,如下php代码:(file2.php)

<?php
include ("file1.php");
echo MyProject\A."<br>";
echo MyProject\MyFunc()."<br>";
echo MyProject\MyClass::MyMethod();
?>

定义了命名空间后,在同一个文件中,只要不属于同一个命名空间,就可以使用不同的方法,变量和类了!

命名空间可以有多层次模式,如下:

namespace MyProject\Sunname;

一个php文件中可以有多个不同的命名空间,如下代码:(file3.php)

<?php
namespace MyProject; //定义命名空间MyProject
const A = php;
function MyFunc(){
 return __FUNCTION__;
}
class MyClass{
 static function MyMethod(){
 return __METHOD__;
 }
}
//再定义一个命名空间
namespace AnotherMyProject; //定义命名空间AnotherMyProject
const A = php;
function MyFunc(){
 return __FUNCTION__;
}
class MyClass{
 static function MyMethod(){
 return __METHOD__;
 }
}
?>

不仅如此,还可以用use关键词导入命名空间,如下php代码:

<?php
include ("file1.php");
use MyProject as ns;
echo ns\A."<br>";
echo ns\MyFunc()."<br>";
echo ns\MyClass::MyMethod();
?>

还有一个需要注意的东西,__NAMESPACE__常量,这个是用于返回当前命名空间的名称,在调试的时候可能很有用!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
用PHP生成html分页列表的代码
Mar 18 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
PHP 实用代码收集
Jan 22 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
PHP的SQL注入过程分析
Jan 06 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
PHP Error与Logging函数的深入理解
Jun 03 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP SESSION机制的理解与实例
Mar 22 #PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 #PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 #PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 #PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 #PHP
简单实用的PHP文本缓存类实例
Mar 22 #PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 #PHP
You might like
PHP 高手之路(三)
2006/10/09 PHP
一个用php实现的获取URL信息的类
2007/01/02 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
javascript读写json示例
2014/04/11 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
Python中的字典遍历备忘
2015/01/17 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python中学习K-Means和图片压缩
2017/11/20 Python
python 构造三维全零数组的方法
2018/11/12 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
Python全栈之列表数据类型详解
2019/10/01 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python Http请求json解析库用法解析
2020/11/28 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
卫生巾广告词
2014/03/18 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
家长对孩子的评语
2014/04/18 职场文书
普通话宣传标语
2014/06/26 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
Golang Web 框架Iris安装部署
2022/08/14 Python