总结PHP升级7.2之后需要注意的事情

总结PHP升级7.2之后需要注意的事情

最近升级了PHP版本,从7.1升级到7.2,升级前版本:

PHP 7.1.14 (cli) (built: Feb 2 2018 08:42:59) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.14, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

登录后复制

升级后版本:

PHP 7.2.2 (cli) (built: Feb 24 2018 17:51:12) ( ZTS DEBUG ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.2, Copyright (c) 1999-2018, by Zend Technologies

登录后复制

推荐(免费):PHP7

升级完成之后发现有几个框架在使用时都出现了问题,主要原因集中在7.2之后废弃了一些功能,下面列出几个常见的问题:

立即学习“PHP免费学习笔记(深入)”;

1、each函数已被废弃:

之前版本写法:

<?php     $array = array();    each($array);    // Deprecated:  The each() function is deprecated. This message will be suppressed on further calls

登录后复制

在7.2版本中会提示过时,可以使用foreach替代each方法,也可以自己修改each方法替代:

<?php     function func_new_each(&$array){       $res = array();       $key = key($array);       if($key !== null){           next($array);            $res[1] = $res['value'] = $array[$key];           $res[0] = $res['key'] = $key;       }else{           $res = false;       }       return $res;    }

登录后复制

2、当传递一个无效参数时,count()函数将抛出warning警告:

之前版本写法

<?php     count('');    // Warning:  count(): Parameter must be an array or an object that implements Countable

登录后复制

在7.2版本中将严格执行类型区分,参数类型不正确,将会出现警告,所以需要在使用count方法时注意参数的值,不过也可以通过自己修改方法来替代(不建议):

<?php     function func_new_count($array_or_countable,$mode = COUNT_NORMAL){        if(is_array($array_or_countable) || is_object($array_or_countable)){            return count($array_or_countable, $mode);        }else{            return 0;        }    }

登录后复制

3、create_function被废弃,可以用匿名函数来代替:

之前版本写法:

<?php     $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');    echo "New anonymous function: $newfunc";    echo $newfunc(2, M_E) . "";    // outputs    // New anonymous function: lambda_1    // ln(2) + ln(2.718281828459) = 1.6931471805599    // Warning This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged.

登录后复制

在7.2版本中会有警告提示,可修改为匿名函数来替代:

<?php     $newfunc = function ($a,$b){        return "ln($a) + ln($b) = " . log($a * $b);    };    echo $newfunc(2, M_E) . "";

登录后复制

以上就是升级之后暂时遇到的几个问题,其它相关修改可详看链家产品技术团队做的翻译及整理:PHP7.2 版本指南

以上就是总结PHP升级7.2之后需要注意的事情的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1969960.html

(0)
上一篇 2025年2月23日 07:43:23
下一篇 2025年2月23日 07:43:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PHP7.2中的新功能(参数类型声明)

    php 7.2已正式发布,该版本具有新特性,功能和改进,可以让我们编写更好的代码。在这篇文章中,我将介绍一些php 7.2中最有趣的语言特性-参数类型声明。 推荐:《PHP7教程》 参数类型声明 从PHP 5开始,我们可以在函数的声明中指定…

    编程技术 2025年2月23日
    100
  • win7下PHP7的安装配置详解

    PHP7安装配置的方法:首先下载“php-7.2.21-Win32-VC15-x64.zip”;然后解压到“D:wampphp7.2”目录;接着修改“php.ini”文件;最后开启curl扩展并配置apache即可。 推荐:《PHP视频教程…

    2025年2月23日 编程技术
    100
  • 认识PHP7.2、PHP7.1 性能对比

    php7教程栏目介绍PHP7.2、PHP7.1的性能对比。 推荐:PHP7教程 服务器配置 2核 Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz内存 4G系统 Centos 6.2gcc 4.4.7 登录后…

    2025年2月23日
    100
  • 详解PHP5.6与PHP7之间的区别

    一、俩者的区别 1.PHP7.0比PHP5.6性能提升了俩倍。 2.PHP7.0全面一致支持64位。 3.PHP7.0之前出现的致命错误,都改成了抛出议程。 4.增加了空结合操作符(??),相当于三元运算符。 5.PHP7.0新增了函数的返…

    2025年2月23日
    100
  • 介绍PHP5.6与PHP7之间的区别

    一、俩者的区别 1.PHP7.0比PHP5.6性能提升了俩倍。 2.PHP7.0全面一致支持64位。 3.PHP7.0之前出现的致命错误,都改成了抛出议程。 4.增加了空结合操作符(??),相当于三元运算符。 5.PHP7.0新增了函数的返…

    2025年2月23日
    100
  • 讲解PHP7.2源码安装

    一、下载php7.2版本的安装包 1、下载 推荐(免费):PHP7 立即学习“PHP免费学习笔记(深入)”; 2、上传到服务器的root目录 pwd:查看当前目录 ll:查看当前目录下的文件 二.解压 tar -xjvf php-7.2.1…

    2025年2月23日 编程技术
    100
  • 整理PHP5.5 ~ PHP7.2 新特性

    php5.5 ~ php7.2 新特性整理 一、从PHP 5.5.x 移植到 PHP 5.6.x 使用表达式定义常量 在之前的 PHP 版本中, 必须使用静态值来定义常量,声明属性以及指定函数参数默认值。 现在你可以使用包括数值、字符串字面…

    2025年2月23日
    100
  • 安装php7.2后php-v没有版本怎么办

    安装php7.2后php-v没有版本的解决办法:1、查找系统里PHP相关的目录或文件;2、查看列出的php的版本信息;3、删除bin目录下所有PHP相关目录;4、在环境变量中加上正确PHP版本的路径即可。 本文操作环境:centos7系统、…

    2025年2月23日
    200
  • php7.2运行失败怎么办

    php7.2运行失败的解决办法:1、在PHP源码目录下执行“vi Makefile”;2、找到EXTRA_LIBS行;3、在行末添加“-llber”;4、保存退出并再次make即可。 本文操作环境:Windows7系统,PHP7.2版,De…

    2025年2月23日
    200
  • php7.2无法连接mysql8.0怎么办

    php7.2无法连接mysql8.0的解决办法:1、找到并打开my.cnf文件;2、在my.cnf的mysqld下添加一行内容为“default-authentication-plugin=mysql_native_password”即可。…

    2025年2月23日
    200

发表回复

登录后才能评论