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来处理多个提交任务
Oct 09 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
php中Smarty模板初体验
Aug 08 PHP
php导入导出excel实例
Oct 25 PHP
php导出word格式数据的代码实例
Nov 25 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
php写的AES加密解密类分享
Jun 20 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
php实现paypal 授权登录
May 28 PHP
php判断用户是否手机访问代码
Jun 08 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 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数组随机排序实现方法
2015/06/13 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python中__new__与__init__方法的区别详解
2015/05/04 Python
对Python实现累加函数的方法详解
2019/01/23 Python
浅谈Python中的继承
2020/06/19 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
财务主管岗位职责
2014/02/28 职场文书
入职担保书怎么写
2014/05/12 职场文书
学校读书活动总结
2014/06/30 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL