5.1.13. 版本安全改动¶
5.1.13.1. 8.0¶
- 字符串与数字弱类型比较将首先将数字转为字符串,然后比较两个字符串
- 内部参数内省错误时抛出异常而不是警告
assert
不再支持执行代码- 移除
create_function
- 移除
mb_ereg_replace()
中的e模式 - Phar中的元信息不再自动进行反序列化
parse_str
必须传入第二个参数- 移除
php://filter
中的string.strip_tags
5.1.13.2. 7.2¶
- 不带引号的字符串 会产生 E_WARNING
- create_function 被废弃
- assert 不能传入字符串表达式
- 不带第二个参数的情况下使用 parse_str() 会产生 E_DEPRECATED 警告
- __autoload() 被废弃
5.1.13.3. 7.1¶
- 调用用户定义的函数提供的参数不足会抛出错误异常而不是警告
- 在不完整的对象上不再调用析构方法
- call_user_func() 不再支持对传址的函数的调用
- mb_ereg_replace() 和 mb_eregi_replace() 的e模式修饰符被废弃
- ext/mcrypt 被废弃
5.1.13.4. 7.0¶
- preg_replace "e" 修饰符 产生 E_WARNING 错误 且失效
- 移除 所有 ext/mysql 函数
- 移除 所有 ext/mssql 函数
- 移除 call_user_method() 和 call_user_method_array()
- foreach 不再改变内部数组指针
- 在之前,一个八进制字符如果含有无效数字,该无效数字将被静默删节 ( 0128 将被解析为 012),现在这样的八进制字符将产生解析错误
- 十六进制字符串不再被认为是数字
- dl() 在 PHP-FPM 不再可用,在 CLI 和 embed SAPIs 中仍可用
- 移除 ASP 和 script PHP 标签,即
<% %>
/<%= %>
/<script language="php"> </script>
- 在数值溢出的时候,内部函数将会失败
- $HTTP_RAW_POST_DATA 被移除
5.1.13.5. 5.6¶
- $HTTP_RAW_POST_DATA 被废弃
- 必须先设置 CURLOPT_SAFE_UPLOAD 为 FALSE 才能够使用 @file 语法来上传文件
5.1.13.6. 5.5¶
- preg_replace "e" 修饰符 产生 E_DEPRECATED 错误
- 废弃
mysql_*
系列函数
5.1.13.7. 5.4¶
- 不再支持 安全模式
- 移除 魔术引号
- 数组转换成字符串将产生一条 E_NOTICE 级别的错误