PHP 5 和 PHP 7 的相同与不同,迁移到 PHP7 真的值得吗 ?

yufei       6 年, 2 月 前       1767

PHP 是一种服务器端脚本语言,由 Rasmus Lerdorf 于 1994 年开发,主要用于 Web 开发。

因为简单的语法和自动热加载特性,自 1994 年 推出以来,PHP 已经成为当下最热门的服务器端编程语言,几乎成了 IT 行业的一个标杆。有接近 80% 的网站使用 PHP 开发,

而 PHP 当前最新的主要大版本已经来到了 PHP 7 。令人兴奋的是: PHP 7 声称它的速度是其前身 PHP 5 的两倍。

那么,迁移到 PHP7 真的值得吗 ?

我们先来详细看看 PHP 7 。

PHP 7 的优点

  1. 性能 : 根据各种资料和 Zend Technologies 的说法, PHP 7 的性能提升是巨大的!只需升级到 PHP 7即可获得巨大的性能升级。因此,PHP 7 通常被称为 PHPNG( PHP - Next Gen ),将您的代码性能提升到一个全新的水平。

  2. 返回值类型 : PHP 5 时代,PHP 没有引起很多开发人员注意的原因之一是他们无法为函数声明返回类型。

    这点在 PHP 7 中已经明显改善。我们可以在创建一个函数时同时声明将返回什么类型的值。例如

    public function area (float $r) : float
    {
       return 3.14*$r*$r;
    }
    
  3. 太空船操作符 <=> :顾名思义,引入的太空船操作符肯定来自不同的世界。该操作符主要用于分类和组合比较。

    在此之前,我们必须写下面这样稍微复杂的代码

    function sort ($a,$b)
    {
        if ($a>$b)
            return 1;
        else if ( $a ==$b)
            return 0;
       else
            return -1;
    }
    

    但是,有了太空船操作符,我们只需要

    function sort ($a,$b)
    {
        return $a < = > $b;
    }
    
  4. 空值合并操作符 ?? : 如果第一个操作数为真,则空值合并操作符 ??返回其第一个操作数的结果,否则返回第二个操作数。

    例如,在此之前,我们必须写下面这样的代码来判断一个值是否为空

    if (isset ($_GET [‘name’])) { $name = $_GET [‘name’]; } else $name = NULL;

    PHP 7 中有了 空值合并操作符 ?? 之后,我们就可以如下简单的语句

    $name = $_GET [‘name’] ?? NULL;
    

PHP 7 其它的附加特性

  • Unicode 字符转义语法 :PHP 7 引入了转义 Unicode 字符集的语法,如下所示:

    echo "\u{202E} Reverse";      // This outputs : esreveR
    
  • 废弃 mysql_* 函数:PHP 7 已经弃用了所有 mysql_* 函数,现在开发人员不得不使用 mysqliPDO 来操作 MySQL 数据库。

PHP 7 的缺点

虽然 PHP 7 没有啥重大的缺点,但是,无关痛痒的小缺点还是一箩筐的,我们挑几个罗列于此:

  1. 扩展不足: PHP 7 还有许多扩展尚未准备好。

  2. 如果原有的老代码中存在大量的 eregmysql* 等函数,这些函数就会打破后向兼容性墙,因为这些功能已被弃用。在升级到 PHP 7 的过程中,这将是一个真正的痛苦。

结论

升级!

其实已经没啥好选择的余地,毕竟 PHP 7 以后的版本也是基于 PHP 7 。总有要升级的那一天。

PHP 7 是 PHP 的未来,所有应用程序迟早都需要升级到 PHP 7。

目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.