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 相关文章推荐
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
ini_set的用法介绍
Jan 07 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
10条php编程小技巧
Jul 07 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
基于php编程规范(详解)
Aug 17 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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 xml-rpc远程调用
2008/12/19 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
php判断目录存在的简单方法
2019/09/26 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
苹果台湾官网:Apple台湾
2019/01/05 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
个人工作能力自我评价
2015/03/05 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
身份证丢失证明
2015/06/19 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript