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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
php中cookie的作用域
Mar 27 PHP
php 抽象类的简单应用
Sep 06 PHP
php缓存技术详细总结
Aug 07 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php检测文件编码的方法示例
Apr 25 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 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脚本的10个技巧(6)
2006/10/09 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
php发送post请求的三种方法
2014/02/11 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
layui动态表头的实现代码
2019/08/22 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python中list常用操作实例详解
2015/06/03 Python
python实现文件快照加密保护的方法
2015/06/30 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python快排算法详解
2019/03/04 Python
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
淘宝活动总结范文
2014/06/26 职场文书
个人党性分析总结
2015/03/05 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫