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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
php中session定期自动清理的方法
Nov 12 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 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
header跳转和include包含问题详解
2012/09/08 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
详解python对象之间的交互
2020/09/29 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
文秘专业个人求职信
2013/12/22 职场文书
单位实习证明怎么写
2014/01/17 职场文书
教师个人鉴定材料
2014/02/08 职场文书
环保倡议书50字
2014/05/15 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
实习报告范文
2019/07/30 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python