嵌套的三元操作中,必須明確使用顯式括號(hào)來決定操作的順序。以前,如果不使用括號(hào),在大多數(shù)情況下,左關(guān)聯(lián)性不會(huì)導(dǎo)致預(yù)期的行為。
<?php
1 ? 2 : 3 ? 4 : 5; // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
使用大括號(hào)訪問數(shù)組及字符串索引的方式已被廢棄。請(qǐng)使用
$var[$idx]
的語法來替代
$var{$idx}
。
(real)
類型已被廢棄,請(qǐng)使用
(float)
來替代。
同時(shí)被廢棄的還有 is_real() 函數(shù),請(qǐng)使用 is_float() 來替代。
$this
when $this
is used
Unbinding $this
of a non-static closure
that uses $this
is deprecated.
parent
關(guān)鍵詞在沒父類的類中使用
在沒有父類的類中使用 parent
關(guān)鍵詞已被廢棄,并且在將來的 PHP 版本中將會(huì)拋出一個(gè)編譯錯(cuò)誤。目前只在運(yùn)行時(shí)訪問父類時(shí)才會(huì)產(chǎn)生錯(cuò)誤。
配置文件中的 allow_url_include 選項(xiàng)被廢棄。如果啟用了該選項(xiàng),將會(huì)產(chǎn)生一個(gè)棄用通知。
在下面這些基礎(chǔ)轉(zhuǎn)換函數(shù)中,base_convert(), bindec(), octdec() 和 hexdec() 如果傳入了非法字符,將會(huì)拋出一個(gè)棄用通知。函數(shù)會(huì)忽略掉無效字符后正常返回結(jié)果。前導(dǎo)空格和尾部空格,以及類型為 0x (取決于基數(shù)) 被允許傳入。
在一個(gè)對(duì)象中使用 array_key_exists() 已被廢棄。請(qǐng)使用 isset() 或 property_exists() 來替代。
魔術(shù)引號(hào)函數(shù) get_magic_quotes_gpc() 和 get_magic_quotes_runtime()
已被廢棄。它們將永遠(yuǎn)返回 false
。
convert_cyr_string() 函數(shù)已被廢棄。可以用 mb_convert_string(), iconv() 或 UConverter 替代。
money_format() 函數(shù)已被廢棄。 可以用更國際化的 NumberFormatter 功能來替代。
ezmlm_hash() 函數(shù)已被廢棄。
restore_include_path() 函數(shù)已被廢棄??梢杂?ini_restore('include_path')
替代。
implode() 允許反轉(zhuǎn)參數(shù)順序的特性已被廢棄,請(qǐng)使用 implode($glue, $parts)
來替代 implode($parts, $glue)
。
導(dǎo)入類型庫的大小寫不敏感的常量注冊(cè)已被廢棄。
FILTER_SANITIZE_MAGIC_QUOTES
已被廢棄,使用 FILTER_SANITIZE_ADD_SLASHES
來替代。
Passing a non-string pattern to mb_ereg_replace() is deprecated. Currently, non-string patterns are interpreted as ASCII codepoints. In PHP 8, the pattern will be interpreted as a string instead.
Passing the encoding as 3rd parameter to mb_strrpos() is deprecated. Instead pass a 0 offset, and encoding as 4th parameter.
ldap_control_paged_result_response() 和 ldap_control_paged_result() 函數(shù)已被廢棄??刂祈撁娌僮骺梢允褂? ldap_search() 替代。
調(diào)用 ReflectionType::__toString() 現(xiàn)在將會(huì)拋出一個(gè)棄用通知。 該方法從 PHP 7.1 開始,在 ReflectionNamedType::getName() 的文檔中已經(jīng)被聲明廢棄,但是由于技術(shù)原因,并沒有拋出棄用通知。
The export()
methods on all Reflection
classes are deprecated. Construct a Reflection object and
convert it to string instead:
<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";
// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>
常量 AI_IDN_ALLOW_UNASSIGNED
和
AI_IDN_USE_STD3_ASCII_RULES
在
socket_addrinfo_lookup() 中不再可用,因?yàn)樵摮A吭?glibc 中已被廢棄。