版本安全改动 ======================================== 8.0 ---------------------------------------- - 字符串与数字弱类型比较将首先将数字转为字符串,然后比较两个字符串 - 内部参数内省错误时抛出异常而不是警告 - ``assert`` 不再支持执行代码 - 移除 ``create_function`` - 移除 ``mb_ereg_replace()`` 中的e模式 - Phar中的元信息不再自动进行反序列化 - ``parse_str`` 必须传入第二个参数 - 移除 ``php://filter`` 中的 ``string.strip_tags`` 7.2 ---------------------------------------- - 不带引号的字符串 会产生 E_WARNING - create_function 被废弃 - assert 不能传入字符串表达式 - 不带第二个参数的情况下使用 parse_str() 会产生 E_DEPRECATED 警告 - __autoload() 被废弃 7.1 ---------------------------------------- - 调用用户定义的函数提供的参数不足会抛出错误异常而不是警告 - 在不完整的对象上不再调用析构方法 - call_user_func() 不再支持对传址的函数的调用 - mb_ereg_replace() 和 mb_eregi_replace() 的e模式修饰符被废弃 - ext/mcrypt 被废弃 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 标签,即 ``<% %>`` / ``<%= %>`` / ```` - 在数值溢出的时候,内部函数将会失败 - $HTTP_RAW_POST_DATA 被移除 5.6 ---------------------------------------- - $HTTP_RAW_POST_DATA 被废弃 - 必须先设置 CURLOPT_SAFE_UPLOAD 为 FALSE 才能够使用 @file 语法来上传文件 5.5 ---------------------------------------- - preg_replace "\e" 修饰符 产生 E_DEPRECATED 错误 - 废弃 ``mysql_*`` 系列函数 5.4 ---------------------------------------- - 不再支持 安全模式 - 移除 魔术引号 - 数组转换成字符串将产生一条 E_NOTICE 级别的错误