PHP中命名空间的使用例子

 更新时间:2019年03月22日 16:37:19   转载 作者:CODETC  
今天小编就为大家分享一篇关于PHP中命名空间的使用例子,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

程序语言中的命名空间指的是一种特殊的作用域,它包含处于该作用域下的标识符,同时它本身也是一种标识符。可以把命名空间与操作系统的目录对应起来。一个命名空间相当于一个目录,命名空间里的类,函数,常量,相当于目录里的文件。同一个目录(命名空间)里的文件名不能相同,但是不同的目录里可以有相同名字的文件。

使用命名空间可以解决名字冲突,比如定义了一个类,正好这个类与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__常量,这个是用于返回当前命名空间的名称,在调试的时候可能很有用!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Zend Framework实现留言本分页功能(附demo源码下载)

    Zend Framework实现留言本分页功能(附demo源码下载)

    这篇文章主要介绍了Zend Framework实现留言本分页功能,详细分析了Zend Framework实现留言本所涉及的控制器动作,分页样式及模板调用技巧,并附代码demo源码供读者下载参考,需要的朋友可以参考下
    2016-03-03
  • Laravel项目中timeAgo字段语言转换的改善方法示例

    Laravel项目中timeAgo字段语言转换的改善方法示例

    这篇文章主要给大家介绍了关于Laravel项目中timeAgo字段语言转换的改善方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • ThinkPHP实现更新数据实例详解(demo)

    ThinkPHP实现更新数据实例详解(demo)

    本文给大家介绍thinkphp实现更新数据的实例详解以及thinkphp更新数据库的五种方法,本文介绍的非常不错,具有参考借鉴价值,感兴趣的朋友可以参考下
    2016-06-06
  • php上传中文文件名乱码问题处理方案

    php上传中文文件名乱码问题处理方案

    这篇文章主要介绍了php上传中文文件名乱码问题处理方案,需要的朋友可以参考下
    2015-02-02
  • PHP数组内存利用率低和弱类型详细解读

    PHP数组内存利用率低和弱类型详细解读

    本篇文章主要介绍了PHP数组内存利用率低和弱类型详细解读,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-08-08
  • Win7 64位系统下PHP连接Oracle数据库

    Win7 64位系统下PHP连接Oracle数据库

    项目中遇到一个问题,即怎么在Windows下连接Oracle进行开发。几乎所有的例子都是基于Mysql的,Oracle的连接本身在Windows平台下就显得比较复杂。这里便长话短说,只记录有用部分,希望对大家有所帮助
    2014-08-08
  • 浅谈Laravel POST,PUT,PATCH 路由的区别

    浅谈Laravel POST,PUT,PATCH 路由的区别

    今天小编就为大家分享一篇浅谈Laravel POST,PUT,PATCH 路由的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP生成HTML静态页面实例代码

    PHP生成HTML静态页面实例代码

    本程序作用是从PHP生成HTML静态页面并存储到以年份和月份为名称创建的目录。读取全部数据批量生成,全部生成后弹出提示。可指定批次生成数量,建议不超过800,否则执行速度会有问题。
    2008-08-08
  • PHP对称加密算法(DES/AES)类的实现代码

    PHP对称加密算法(DES/AES)类的实现代码

    本篇文章主要介绍了PHP对称加密算法(DES/AES)类的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • php阻止页面后退的方法分享

    php阻止页面后退的方法分享

    这篇文章主要介绍了php阻止页面后退的方法,让后退的页面不存在就可以阻止页面后退,怎么让页面不存在呢,临时生成的页面就可以,下面用实例说明这个方法
    2014-02-02

最新评论