如果未提供对 PHP 7.4 之前版本的支持,则应仅实现新的方法,或者应同时实现两者。
null
传递给内置函数的不可为空参数内置函数的标量类型默认情况下是可为空的。此行为已弃用,以与用户定义函数的行为保持一致,在用户定义函数中,标量类型需要显式标记为可为空。
<?php
var_dump(str_contains("foobar", null));
// 已弃用:将 null 传递给类型为字符串的参数 #2 ($needle)
// 已弃用
?>
现在已弃用导致精度损失的 float 到 int 的隐式转换。这会影响 array 键、强制模式下的 int 类型声明以及对 int 的操作。
<?php
$a = [];
$a[15.5]; // 已弃用,因为键值丢失了 0.5 部分
$a[15.0]; // 正常,因为 15.0 == 15
?>
在特质上直接调用 static 方法或访问 static 属性已弃用。静态方法和属性只能在使用该特质的类上访问。
date_sunrise() 和 date_sunset() 已被弃用,取而代之的是 date_sun_info()。
strptime() 已被弃用。请改用 date_parse_from_format()(用于与区域设置无关的解析),或 IntlDateFormatter::parse()(用于与区域设置相关的解析)。
strftime() 和 gmstrftime() 已被弃用。请改用 date()(用于与区域设置无关的格式化),或 IntlDateFormatter::format()(用于与区域设置相关的格式化)。
imagepolygon()、imageopenpolygon() 和 imagefilledpolygon() 的 num_points
已被弃用。
mhash()、mhash_keygen_s2k()、mhash_count()、mhash_get_block_size() 和 mhash_get_hash_name() 已被弃用。请改用 hash_*()
函数。
NIL
常量已弃用。请改用 0
。
使用 bool 参数调用 IntlCalendar::roll() 已弃用。请改用 1
和 -1
,而不是分别使用 true
和 false
。
在没有任何参数的情况下调用 mb_check_encoding() 已弃用。
mysqli_driver::$driver_version 属性已弃用。它没有意义且已过时,请改用 PHP_VERSION_ID
。
使用 mysqli
参数调用 mysqli::get_client_info() 或 mysqli_get_client_info() 已弃用。在没有任何参数的情况下调用 mysqli_get_client_info() 以获取客户端库的版本信息。
mysqli::init() 方法已弃用。请将对 parent::init() 的调用替换为 parent::__construct()。
oci8.old_oci_close_semantics INI 指令已弃用。
odbc_result_all() 已被弃用。
PDO::FETCH_SERIALIZE
提取模式已弃用。
对所有 pgsql_*()
函数不传递连接参数已弃用。
SoapClient::__construct() 的 ssl_method
选项已弃用,建议使用 SSL 流上下文选项。
在 object 上调用 key()、current()、next()、prev()、reset() 或 end() 已弃用。请先使用 get_mangled_object_vars() 将 object 转换为 array,或者使用实现 Iterator 的类的提供的 方法,例如 ArrayIterator。
auto_detect_line_endings INI 指令已弃用。如有必要,请手动处理 "\r"
换行符。
FILE_BINARY
和 FILE_TEXT
常量已弃用。它们从未起过作用。