广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php7和PHP5对比有什么区别
  • 464
分享到

php7和PHP5对比有什么区别

2023-06-14 06:06:48 464人浏览 八月长安
摘要

这篇文章主要介绍PHP7和php5对比有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7和PHP5对比的新特性和性能优化1. 抽象语法树(AST)AST在PHP编译过程作为一个中间件的角色,替换原来直接

这篇文章主要介绍PHP7和php5对比有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

php7和PHP5对比的新特性和性能优化

1. 抽象语法树(AST)

AST在PHP编译过程作为一个中间件的角色,替换原来直接从解释器吐出opcode的方式,让解释器(parser)和编译器(compliler)解耦,可以减少一些Hack代码,同时,让实现更容易理解和可维护

2. Natice TLS:

线程数据共享安全,开启一个全局线程用作数据共享内存空间

3. 指定参数 返回值类型

4. zval 结构的变化

5. 异常处理

PHP 5 的 try ... catch ... finally 无法处理传统错误,如果需要,你通常会考虑用 set_error_handler() 来 Hack 一下。但是仍有很多错误类型是 set_error_handler() 捕捉不到的

PHP 7引入 Throwable 接口,错误及异常都实现了 Throwable,无法直接实现 Throwable,但可以扩展 \Exception 和 \Error 类。可以用 Throwable 捕捉异常跟错误。\Exception 是所有PHP及用户异常的基类;\Error 是所有内部PHP错误的基类。

6. 新的参数解析方式

7. hashtable变化

buckets、Zvals不再单独分配内存,消除了很多没用的冗余。

8、空合并操作符(Null Coalesce Operator)

直接上例子:

$name = $name ?? "NoName";  // 如果$name有值就取其值,否则设$name成"NoName"

9、飞船操作符(Spaceship Operator)(组合比较操作符)

形式:(expr) <=> (expr)

左边运算对象小,则返回-1;左、右两边运算对象相等,则返回0;左边运算对象大,则返回1。

$name = ["Simen", "Suzy", "Cook", "Stella"];usort($name, function ($left, $right) {    return $left <=> $right;});print_r($name);

10、常量数组(Constant Array)

PHP 7 之前只允许类/接口中使用常量数组,现在 PHP 7 也支持非类/接口的普通常量数组了。

define("USER", [  "name"  => "Simen",  "sex"   => "Male",  "age"   => "38",  "skill" => ["PHP", "MySQL", "C"]]);// USER["skill"][2] = "C/C++";  // PHP Fatal error:  Cannot use temporary expression in write context in...

11、统一了变量语法

$Goo = [    "bar" => [        "baz" => 100,        "cug" => 900    ]];$foo = "goo";$$foo["bar"]["baz"];  // 实际为:($$foo)['bar']['baz']; PHP 5 中为:${$foo['bar']['baz']};                      // PHP 7 中一个笼统的判定规则是,由左向右结合。

12、Throwable 接口

这是 PHP 7 引进的一个值得期待的新特性,将极大增强 PHP 错误处理能力。PHP 5 的 try ... catch ... finally 无法处理传统错误,如果需要,你通常会考虑用 set_error_handler() 来 Hack 一下。但是仍有很多错误类型是 set_error_handler() 捕捉不到的。PHP 7引入 Throwable 接口,错误及异常都实现了 Throwable,无法直接实现 Throwable,但可以扩展 \Exception 和 \Error 类。可以用 Throwable 捕捉异常跟错误。\Exception 是所有PHP及用户异常的基类;\Error 是所有内部PHP错误的基类。

$name = "Tony";try {    $name = $name->method();} catch (\Error $e) {    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;}try {    $name = $name->method();} catch (\Throwable $e) {    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;}try {    intp(5, 0);} catch (\pisionByZeroError $e) {    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;}

13、use 组合声明

use 组合声明可以减少 use 的输入冗余。

use PHPGoodTaste\Utils\{    Util,    FORM,    Form\Validation,    Form\Binding};

14、一次捕捉多种类型的异常 / 错误

PHP 7.1 新添加了捕获多种异常/错误类型的语法——通过竖杠“|”来实现。

try {      throw new LengthException("LengthException");    //   throw new pisionByZeroError("pisionByZeroError");    //   throw new Exception("Exception");} catch (\pisionByZeroError | \LengthException $e) {    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;} catch (\Exception $e) {    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;} finally {    // ...}

15、可见性修饰符的变化

PHP 7.1 之前的类常量是不允许添加可见性修饰符的,此时类常量可见性相当于 public。PHP 7.1 为类常量添加了可见性修饰符支持特性。总的来说,可见性修饰符使用范围如下所示:

  • 函数/方法:public、private、protected、abstract、final

  • 类:abstract、final

  • 属性/变量:public、private、protected

  • 类常量:public、private、protected

class YourClass {    const THE_OLD_STYLE_CONST = "One";    public const THE_PUBLIC_CONST = "Two";    private const THE_PRIVATE_CONST = "Three";    protected const THE_PROTECTED_CONST = "Four";}

iterable 伪类型

PHP 7.1 引入了 iterable 伪类型。iterable 类型适用于数组、生成器以及实现了 Traversable 的对象,它是 PHP 中保留类名。

$fn = function (iterable $it) : iterable {    $result = [];    foreach ($it as $value) {        $result[] = $value + 1000;    }    return $result;};$fn([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

可空类型(Nullable Type)

PHP 7.1 引入了可空类型。看看新兴的 Kotlin 编程语言的一个噱头特性就是可空类型。PHP 越来越像“强类型语言了”。对于同一类型的强制要求,可以设置其是否可空。

$fn = function (?int $in) {    return $in ?? "NULL";};$fn(null);$fn(5);$fn();  // TypeError: Too few arguments to function {closure}(), 0 passed in ...

Void 返回类型

PHP 7.1 引入了 Void 返回类型。

function first(): void {    // ...}function second(): void {    // ...    return;}

以上是“php7和PHP5对比有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: php7和PHP5对比有什么区别

本文链接: https://www.lsjlt.com/news/268810.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php7和PHP5对比有什么区别
    这篇文章主要介绍php7和PHP5对比有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7和PHP5对比的新特性和性能优化1. 抽象语法树(AST)AST在PHP编译过程作为一个中间件的角色,替换原来直接...
    99+
    2023-06-14
  • PHP7和PHP5有哪些区别
    本篇内容主要讲解“PHP7和PHP5有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP7和PHP5有哪些区别”吧!安装两个PHP版本http://php.net/ 已经有最新PHP7...
    99+
    2023-06-20
  • php7和php5的区别是什么
    本篇文章为大家展示了php7和php5的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Per...
    99+
    2023-06-14
  • PHP7和PHP5在安全上有什么区别
    本篇内容主要讲解“PHP7和PHP5在安全上有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP7和PHP5在安全上有什么区别”吧!函数修改1. preg_replace()不再支持/...
    99+
    2023-06-17
  • php7与php5的区别是什么
    本文操作环境:windows10系统、php 7&&php 5、thinkpad t480电脑。相信一定有很多小伙伴都有过这样的疑惑,php5和php7之间有什么区别么?php7想对于php5增加或删除了哪些东西?下面我就来...
    99+
    2020-09-07
    php 7 php 5 区别
  • PHP5和PHP7的垃圾回收机制有哪些区别
    这篇文章主要为大家展示了“PHP5和PHP7的垃圾回收机制有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP5和PHP7的垃圾回收机制有哪些区别”这篇文章吧。php5和php7的垃圾...
    99+
    2023-06-20
  • php7和hvvm有什么区别
    小编给大家分享一下php7和hvvm有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP7和HHVM解析PHP代码的方式不同:PHP7使用标准的PHP解...
    99+
    2023-06-15
  • python和nodejs对比有什么区别
    python和nodejs对比的区别有:1、python中需要使用virtualenv来分割管理依赖包,而nodejs中通过NPM包管理;2、python中使用from/import进行引入模块;而nodejs引入的其他模块在本模块内都有局...
    99+
    2022-10-07
  • unix和linux对比有什么区别
    小编给大家分享一下unix和linux对比有什么区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!unix和linux的区别:1、UNIX是商业化的,而Linux是开源的,是免费、公开源代码的;2、UNIX系统大多是与硬件...
    99+
    2023-06-14
  • Ae和html对比有什么区别
    这篇文章主要为大家展示了Ae和html对比有什么区别,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Ae和html对比有什么区别”这篇文章吧。html有什么特点1、简易性:超级文本标记语言版本升级采...
    99+
    2023-06-06
  • .net和java对比有什么区别
    小编给大家分享一下.net和java对比有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!“.net”致力于敏捷、快速开发和跨平台,可以用于开发C/S结构的...
    99+
    2023-06-14
  • PHP5和PHP7之间关于获取函数的区别是什么
    本篇内容主要讲解“PHP5和PHP7之间关于获取函数的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP5和PHP7之间关于获取函数的区别是什么”吧!PHP5和PHP7取数组元素作动...
    99+
    2023-06-25
  • PHP5和PHP7之间有哪些关于获取函数的区别
    这篇文章主要讲解了“PHP5和PHP7之间有哪些关于获取函数的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP5和PHP7之间有哪些关于获取函数的区别”吧!在 PHP5 和 PHP7...
    99+
    2023-06-25
  • php4和php5的区别是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php4和php5的区别是什么构造函数和析构函数在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。在 PH...
    99+
    2015-12-28
    PHP
  • 【PHP面试题44】PHP5的版本和PHP7之间有哪些区别
    文章目录 一、前言二、底层调整2.1性能提升2.2 新的引擎2.3 数据类型改进2.4 错误处理改进2.5 语言特性增加 三、应用层差异3.1 兼容性3.2 类和方法改进3.3 错误处理机...
    99+
    2023-10-04
    PHP PHP7 PHP5
  • php与html对比有什么区别
    这篇文章给大家分享的是有关php与html对比有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。关系:PHP是HTML语言的一种升级形式,它的语言结构仍以HTML为核心;这么说吧,HTML是一张白纸,那么P...
    99+
    2023-06-06
  • php5.6和php7的区别是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php5.6和php7的区别是什么一、俩者的区别PHP7.0比PHP5.6性能提升了俩倍。PHP7.0全面一致支持64位。PHP7.0之前出现的致命错误,都改成了抛出...
    99+
    2018-06-05
    PHP
  • tmsi和iccid对比有哪些区别
    这篇文章主要介绍tmsi和iccid对比有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!tmsi和iccid区别:1、Tmsi解锁时需要区分手机运营商版本,而Iccid解锁时则无需区分运营商版本;2、Tmsi...
    99+
    2023-06-14
  • vegas和pr对比有哪些区别
    这篇文章给大家分享的是有关vegas和pr对比有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:Vegas是由Sonic Foundry公司开发的;Pr是由Adobe公司开发的。vegas不论是对于专...
    99+
    2023-06-08
  • mysql中mydumper和mysqldump对比使用有什么不区别
    小编给大家分享一下mysql中mydumper和mysqldump对比使用有什么不区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作