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 中文乱码解决办法总结分析
Jul 30 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
php常量详细解析
Oct 27 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
thinkphp5框架API token身份验证功能示例
May 21 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正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
深入浅析javascript函数中with
2018/10/28 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
荷叶圆圆教学反思
2014/02/01 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
2016年寒假生活小结
2015/10/10 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
python运行脚本文件的三种方法实例
2022/06/25 Python