• 技术文章 >后端开发 >PHP7

    升级PHP7避免踩坑

    coldplay.xixicoldplay.xixi2021-02-19 09:33:24转载116

    推荐(免费):PHP7

    之前就听说php7这个版本有很大的提升,终于公司的项目也要升级到PHP7了。

    升级之前看了一下大家整理好的一些介绍,发现这个版本是从底层开始就有很大的更改,当然,效率也提升了很多。

    除了一些新增的功能(这个大家都已经写的很全了,写一些我没看到的,随着项目的踩坑慢慢更新吧)

    扩展部分

    1.注意自己的php版本,去下载/安装对应的扩展,我这边是windows环境,就去下载dll文件来用

    友情提醒:注意ini配置的扩展地址,我这里开始还奇怪,怎么我的扩展都没有扩展上,在phpinfo()当中没有信息啊!怎么都没想到,地址写错了!~~该打

    2.5.x的版本用memcache的人应该比较多,我们公司的项目也不例外,但是memcache更新支持到php5.6的版本就不更新了,看了一下有改用memcached的,还有自己重新编译的,我觉得我们升级的比较晚应该有人上传这个支持PHP7的版本了吧,于是真找到了。

    贴一下连接,直接去找对应的版本就好:https://github.com/nono303/PHP7-memcache-dll

    3.phalcon也有支持php7的版本了,也是直接找对应的版本就可以:https://github.com/phalcon/cphalcon/releases/tag/v3.4.1

    代码部分

    1.split这个方法在php不可以使用了,可以根据需求使用preg_split or str_split or explode 进行替代

    2.自定义函数传参时,参数一定不能没有值 是什么意思呢 看以下代码说明

    错误:

    function test($name)
    
    {
    
        if(empty($name))
    
        {
    
                echo 'php7时会出现致命错误!~'根本到不了这里;
    
        }
    
    }

    正确:

    function test($name=null)
    
    {
    
        if(empty($name))
    
        {
    
                echo '这里就可以正常执行了~';
    
        }
    
    }

    很遗憾,我这个项目当中很多都是这么写的(大致就是没有时间值时再读取一个默认时间!~)

    间接使用变量、属性和方法的变化

    表达式PHP 5 的解析方式PHP 7 的解析方式
    $$foo[‘bar’][‘baz’]${$foo[‘bar’][‘baz’]}($$foo)[‘bar’][‘baz’]
    $$foo[‘bar’][‘baz’]$foo->{$bar[‘baz’]}($$foo)[‘bar’][‘baz’]
    $$foo[‘bar’][‘baz’]$foo->{$bar[‘baz’]}()($$foo)[‘bar’][‘baz’]
    Foo::$bar’baz’Foo::{$bar[‘baz’]}()(Foo::$bar)[‘baz’]()

    使用了旧的从右到左的解析顺序的代码必须被重写,明确的使用圆括号来表明顺序(参见上表)。 这样使得代码既保持了与PHP 7.x的前向兼容性,又保持了与PHP 5.x的后向兼容性。(文档说的)
    其他大致就是7.X对比5.X的时候警告多了许多,变得很严谨(会提示各种参数无效,甚至做计算时除以0也会出警告)

    以上就是升级PHP7避免踩坑的详细内容,更多请关注php中文网其它相关文章!

    本文转载于:CSDN,如有侵犯,请联系a@php.cn删除
    专题推荐:PHP7
    上一篇:介绍PHP7+Swoole/Nginx/Golang性能对比 下一篇:学习php7配置mysqli和使用mysqli连接mysql
    第15期线上培训班

    相关文章推荐

    • 介绍PHP7.3.5封装类访问mysql数据库• Centos下PHP5升级PHP7的方法• 给准备升级PHP7的小伙伴说道说道• 介绍linux如何安装php7.3• PHP7 源码整体框架详解• 介绍Linux环境安装PHP7

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网