luxixing
PHP-5.3向更高版本迁移之不兼容
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
luxixing
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
PHP-5.3向更高版本迁移之不兼容
PHP-5.3向更高版本迁移之不兼容
luxixing
关注
发布于 2019-05-29 17:42:30
961
0
发布于 2019-05-29 17:42:30
举报
文章被收录于专栏:
luxixing
PHP 5.4不兼容内容
熟悉
安全模式的移除(safe_mode),涉及到php.ini配置指令
安全模式开启,限制PHP中的一些内置函数的使用 代码中如果有依赖于安全模式保障安全的内容,需要调整
移除魔术引号(magic_quote),涉及到php.ini配置指令
魔术引号自动对用户提交数据转义(包括不必要转义的数据),性能低下 魔术引号的效果和使用
addslashes()
函数一样 为避免出现安全问题,任何依赖魔术引号特性的代码都需要修改 移除模式引号后,对仅需要存储到数据库中的数据进行
addslashes()
操作
调用时的引用传递被移除
<?php function foo(&$var) { $var = 'hello, word'; var_dump($var); } $var = 1111; foo($var);//正确的调用方法 foo(&$var);//过期用法,报出一个警告错误 ?>
在日期与时间扩展中,不再支持时区使用 TZ(TimeZone)环境变量设置
php.ini中强烈建议配置date.timezone 或者在程序入口脚本配置环境时,使用date_default_timezone_set()设定时区
数组转换成字符串将产生一条 E_NOTICE 级别的错误,但返回的结果仍是字符串 "Array"
现在参数名使用全局变量将会导致一个致命错误
<?php //这样的代码,报致命错误 function foo($_GET, $_POST) {};
当使用两个空数组作为参数时, array_combine() 现在返回 array() 而不是 FALSE
trait,callable,insteadof成为新的保留字,在函数和类名中不可使用
了解
register_globals 和 register_long_arrays php.ini 指令被移除
break 和 continue 语句不再接受可变参数
<?php define('VAR', 10); while(true) { while(true) { //正确写法 break 10; continue VAR; //错误写法 break 10 - $var; contnue $var * 10; } }
NULL 、FALSE 、或 一个空字符串被添加成一个对象的属性时将发出一条 E_WARNING 级别的错误,而不是 E_STRICT
Salsa10 和 Salsa20 哈希算法 被移除
强烈建议不要再使用 eregi()
移除的函数
define_syslog_variables() import_request_variables() session_is_registered() 、 session_register() 以及 session_unregister() mysqli_bind_param() 、 mysqli_bind_result() 、 mysqli_client_encoding() mysqli_fetch() 、 mysqli_param_count() 、 mysqli_get_metadata()
过时的函数
mcrypt_generic_end() mysql_list_dbs()
sqlite扩展被移到 pecl扩展中,不包含在PHP发行版中
PHP5.5不兼容内容
熟悉
原始的 MySQL 扩展 现在被废弃(不推荐使用,下版本将会移除)
当连接到数据库时会产生一个 E_DEPRECATED 错误。可使用 MySQLi 或 PDO_MySQL 扩展作为替代
了解
windows xp & windows server 2003支持取消。还在使用这两个环境就太out了
移除 PHP logo GUIDs组函数
php_logo_guid() php_egg_logo_guid() php_real_logo_guid() zend_logo_guid()
preg_replace() 中的 /e 修饰符被标识为不推荐使用
替代方案是使用
preg_match_replace
mcrypt 中的下列函数过期(在未来版本会被移除)
mcrypt_cbc() mcrypt_cfb() mcrypt_ecb() mcrypt_ofb()
intl 中的废弃
IntlDateFormatter::setTimeZoneID() 和 datefmt_set_timezone_id() 现在被废弃 可分别使用 IntlDateFormatter::setTimeZone() 方法和 datefmt_set_timezone() 函数作为替代
pack() 和 unpack() 函数的变化
添加了Z格式和perl兼容 这两个函数在二进制接口使用
本文参与
腾讯云自媒体同步曝光计划
,分享自作者个人站点/博客。
如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
php
云数据库 SQL Server
数据库
sql
编程算法
本文分享自
作者个人站点/博客
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体同步曝光计划
,欢迎热爱写作的你一起参与!
php
云数据库 SQL Server
数据库
sql
编程算法
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
文章
0
获赞
0
目录
PHP 5.4不兼容内容
PHP5.5不兼容内容
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
产品介绍
产品文档
云数据库采购特惠,高性能、高可靠、高安全,超值优惠等你享!
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐