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系列学习之日期函数使用介绍
Aug 18 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php绘制一条直线的方法
Jan 24 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
四个PHP非常实用的功能
Sep 29 PHP
必须收藏的23个php实用代码片段
Feb 02 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
PHP的explode和implode的使用说明
2011/07/17 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
CSS常用网站布局实例
2008/04/03 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
深入探讨前端框架react
2015/12/09 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
js编写选项卡效果
2017/05/23 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
python写的一个文本编辑器
2014/01/23 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
中海讯通笔试题
2015/09/15 面试题
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
单身证明格式样本
2015/06/15 职场文书
遗失证明范文
2015/06/19 职场文书
诚信考试主题班会
2015/08/17 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python