PHP 7.2.x 中废弃的功能
不带引号的字符串
不带引号的字符串是不存在的全局常量,转化成他们自身的字符串。
在以前,该行为会产生
E_NOTICE,但现在会产生
E_WARNING。在下一个 PHP 主版本中,将抛出
Error 异常。
var_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 %d
string(11) "NONEXISTENT"
*/
[png2wbmp()](php7/function.png2wbmp) 和 [jpeg2wbmp()](php7/function.jpeg2wbmp)
GD 扩展内的 [png2wbmp()](php7/function.png2wbmp) 和 [jpeg2wbmp()](php7/function.jpeg2wbmp) 现已被废弃,将在下一个 PHP 主版本中移除。
INTL_IDNA_VARIANT_2003 转化
Intl 扩展废弃了
INTL_IDNA_VARIANT_2003 转化,为[idn_to_ascii()](php7/function.idn-to-ascii) 和
[idn_to_utf8()](php7/function.idn-to-utf8) 的默认选项。
PHP 7.4 会把默认值设置为
INTL_IDNA_VARIANT_UTS46,
并在下一个 PHP 主版本中完全移除 INTL_IDNA_VARIANT_2003。
[__autoload()](php7/function.autoload) 方法
[__autoload()](php7/function.autoload) 方法已被废弃,
因为和 [spl_autoload_register()](php7/function.spl-autoload-register) 相比功能较差 (因为无法链式处理多个 autoloader),
而且也无法在两种 autoloading 样式中配合使用。
track_errors ini 设置和 $php_errormsg 变量
当开启了 track_errors ini 设置,出现非致命错误时,
会在本地作用域创建 $php_errormsg 变量。
由于提供了更好的方式: [error_get_last()](php7/function.error-get-last) 来获取此类错误信息,该功能被废弃。
[create_function()](php7/function.create-function) 函数
考虑到此函数的安全隐患问题(它是 [eval()](php7/function.eval) 的瘦包装器),该过时的函数现在已被废弃。
更好的选择是[匿名函数](php7/functions.anonymous)。
mbstring.func_overload ini 设置
由于此设置会影响环境中的字符串系列函数,带来相互操作中的问题,它现在已被废弃。
(unset) 类型强制转化
转化任意表达式为此类型,结果总是 NULL,所以这个多余的类型转化现在也就被废弃了。
[parse_str()](php7/function.parse-str) 不加第二个参数
使用 [parse_str()](php7/function.parse-str) 时,不加第二个参数会导致查询字符串参数导入当前符号表。
考虑到安全隐患问题,不加第二个参数使用
[parse_str()](php7/function.parse-str) 的行为已被废弃。
此函数的第二个选项为必填项,它使查询字符串转为 Array。
[gmp_random()](php7/function.gmp-random) 函数
此函数基于未知的、取决于平台的 limb 尺寸产生随机数。因此,该函数已被废弃。
使用更好的方式产生随机数: GMP 扩展中的
[gmp_random_bits()](php7/function.gmp-random-bits) 和
[gmp_random_range()](php7/function.gmp-random-range)。
[each()](php7/function.each) 函数
使用此函数遍历时,比普通的 foreach 更慢,
并且给新语法的变化带来实现问题。因此它被废弃了。
[assert()](php7/function.assert) 一个字符串参数
[assert()](php7/function.assert) 字符串参数将要求它能被 [eval()](php7/function.eval) 执行。
考虑到可能被执行远程代码,废弃了字符串的 [assert()](php7/function.assert),最好提供 bool 的表达式。
错误处理器内的 $errcontext 参数
$errcontext 参数包含了错误网站的所有本地变量。
考虑到它很少被用到,而且还会导致内部优化问题,它现在被废弃了。
代替用法:调试器应该自己取回错误站点的本地变量。
[read_exif_data()](php7/function.read-exif-data) 函数
[read_exif_data()](php7/function.read-exif-data) 别名已被废弃
使用 [exif_read_data()](php7/function.exif-read-data) 函数代替。