登录  /  注册
首页 > 后端开发 > PHP7 > 正文

升级PHP7避免踩坑

coldplay.xixi
发布: 2021-02-19 09:33:24
转载
2106人浏览过

升级PHP7避免踩坑

推荐(免费):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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:CSDN网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号