Php/docs/migration72.deprecated
PHP 7.2.x 中废弃的功能
不带引号的字符串
不带引号的字符串是不存在的全局常量,转化成他们自身的字符串。
在以前,该行为会产生
E_NOTICE
,但现在会产生
E_WARNING
。在下一个 PHP 主版本中,将抛出
Error 异常。
<?phpvar_dump(NONEXISTENT);/* Output:Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %dstring(11) "NONEXISTENT"*/
INTL_IDNA_VARIANT_2003
转化
Intl 扩展废弃了
INTL_IDNA_VARIANT_2003
转化,为idn_to_ascii() 和
idn_to_utf8() 的默认选项。
PHP 7.4 会把默认值设置为
INTL_IDNA_VARIANT_UTS46
,
并在下一个 PHP 主版本中完全移除 INTL_IDNA_VARIANT_2003
。
__autoload() 方法
__autoload() 方法已被废弃, 因为和 spl_autoload_register() 相比功能较差 (因为无法链式处理多个 autoloader), 而且也无法在两种 autoloading 样式中配合使用。
track_errors
ini 设置和 $php_errormsg
变量
当开启了 track_errors
ini 设置,出现非致命错误时,
会在本地作用域创建 $php_errormsg
变量。
由于提供了更好的方式: error_get_last() 来获取此类错误信息,该功能被废弃。
mbstring.func_overload
ini 设置
由于此设置会影响环境中的字符串系列函数,带来相互操作中的问题,它现在已被废弃。
(unset)
类型强制转化
转化任意表达式为此类型,结果总是 null
,所以这个多余的类型转化现在也就被废弃了。
parse_str() 不加第二个参数
使用 parse_str() 时,不加第二个参数会导致查询字符串参数导入当前符号表。 考虑到安全隐患问题,不加第二个参数使用 parse_str() 的行为已被废弃。 此函数的第二个选项为必填项,它使查询字符串转为 Array。
gmp_random() 函数
此函数基于未知的、取决于平台的 limb 尺寸产生随机数。因此,该函数已被废弃。 使用更好的方式产生随机数: GMP 扩展中的 gmp_random_bits() 和 gmp_random_range()。
错误处理器内的 $errcontext
参数
$errcontext
参数包含了错误网站的所有本地变量。
考虑到它很少被用到,而且还会导致内部优化问题,它现在被废弃了。
代替用法:调试器应该自己取回错误站点的本地变量。