迹忆博客
当前位置: 主页 > 学无止境 > 编程语言 > 文章

PHP基础 namespace PHP7 和 PHP5的不同

发布时间: 2017-11-02 作者: 迹忆 浏览次数:

php自5.3版本开始引入命名空间的概念,其关键字为namespace——定义命名空间,还有use——使用命名空间的某个应用。

简单来说,命名空间就是一种封装事物的方法。可以类比于操作系统中的文件夹的概念。

在php设计namespace之初,目的就是为了解决类名、函数名或者常量名冲突问题,以及为比较长的类名创建一个别名以方便对代码的阅读。

至于命名空间的定义和使用不是本章的重点。php7相对于php5来说可以说是一个质的跨越。php7新增了很多新的特性,这里针对namespace看看php7都有哪些不同。

其实说到不同,在namespace方面不算多,在php5的基础上增加了同时引用一组命名空间的特性。

对于同一命名空间下的类、函数和常量,在php7之前,我们来看一下都是如何使用的。

<?php
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

而php7之后对于同一命名空间下的类、函数和常量可以作为一组来引用。

<?php
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};

同时也可以如下方式引用

<?php
use some\namespace\{
    classA,ClassB,ClassC as C,
    function fn_a,function fn_b,function fn_c,
    const ConstA,const ConstB,const ConstC
}

这样的引用方式相对于php7之前的引用方式来说应该是精简了很多。

除了namespace之外,php7在其他方面也新增了很多特性。具体可查看 php7新特性

赞助
迹忆博客

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: