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中的float类型使用说明
Jul 27 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
php中JSON的使用方法
Apr 30 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
PHP基于GD库实现的生成图片缩略图函数示例
Jul 05 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
实例分析10个PHP常见安全问题
Jul 09 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 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
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
Python标准库内置函数complex介绍
2014/11/25 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
python 性能优化方法小结
2017/03/31 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Python: 传递列表副本方式
2019/12/19 Python
python如何写出表白程序
2020/06/01 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
525心理活动总结
2014/07/04 职场文书
统计专业自荐书
2014/07/06 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
合作协议书模板2014
2014/09/26 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android