PHP 7.2.x 中廢棄的功能

不帶引號的字符串

不帶引號的字符串是不存在的全局常量,轉(zhuǎn)化成他們自身的字符串。 在以前,該行為會產(chǎn)生 E_NOTICE,但現(xiàn)在會產(chǎn)生 E_WARNING。在下一個 PHP 主版本中,將拋出 Error 異常。

<?php

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()jpeg2wbmp()

GD 擴(kuò)展內(nèi)的 png2wbmp()jpeg2wbmp() 現(xiàn)已被廢棄,將在下一個 PHP 主版本中移除。

INTL_IDNA_VARIANT_2003 轉(zhuǎn)化

Intl 擴(kuò)展廢棄了 INTL_IDNA_VARIANT_2003 轉(zhuǎn)化,為idn_to_ascii()idn_to_utf8() 的默認(rèn)選項。 PHP 7.4 會把默認(rèn)值設(shè)置為 INTL_IDNA_VARIANT_UTS46, 并在下一個 PHP 主版本中完全移除 INTL_IDNA_VARIANT_2003。

__autoload() 方法

__autoload() 方法已被廢棄, 因為和 spl_autoload_register() 相比功能較差 (因為無法鏈?zhǔn)教幚矶鄠€ autoloader), 而且也無法在兩種 autoloading 樣式中配合使用。

track_errors ini 設(shè)置和 $php_errormsg 變量

當(dāng)開啟了 track_errors ini 設(shè)置,出現(xiàn)非致命錯誤時, 會在本地作用域創(chuàng)建 $php_errormsg 變量。 由于提供了更好的方式: error_get_last() 來獲取此類錯誤信息,該功能被廢棄。

create_function() 函數(shù)

考慮到此函數(shù)的安全隱患問題(它是 eval() 的瘦包裝器),該過時的函數(shù)現(xiàn)在已被廢棄。 更好的選擇是匿名函數(shù)。

mbstring.func_overload ini 設(shè)置

由于此設(shè)置會影響環(huán)境中的字符串系列函數(shù),帶來相互操作中的問題,它現(xiàn)在已被廢棄。

(unset) 類型強(qiáng)制轉(zhuǎn)化

轉(zhuǎn)化任意表達(dá)式為此類型,結(jié)果總是 null,所以這個多余的類型轉(zhuǎn)化現(xiàn)在也就被廢棄了。

parse_str() 不加第二個參數(shù)

使用 parse_str() 時,不加第二個參數(shù)會導(dǎo)致查詢字符串參數(shù)導(dǎo)入當(dāng)前符號表。 考慮到安全隱患問題,不加第二個參數(shù)使用 parse_str() 的行為已被廢棄。 此函數(shù)的第二個選項為必填項,它使查詢字符串轉(zhuǎn)為 Array。

gmp_random() 函數(shù)

此函數(shù)基于未知的、取決于平臺的 limb 尺寸產(chǎn)生隨機(jī)數(shù)。因此,該函數(shù)已被廢棄。 使用更好的方式產(chǎn)生隨機(jī)數(shù): GMP 擴(kuò)展中的 gmp_random_bits()gmp_random_range()

each() 函數(shù)

使用此函數(shù)遍歷時,比普通的 foreach 更慢, 并且給新語法的變化帶來實(shí)現(xiàn)問題。因此它被廢棄了。

assert() 一個字符串參數(shù)

assert() 字符串參數(shù)將要求它能被 eval() 執(zhí)行。 考慮到可能被執(zhí)行遠(yuǎn)程代碼,廢棄了字符串的 assert(),最好提供 bool 的表達(dá)式。

錯誤處理器內(nèi)的 $errcontext 參數(shù)

$errcontext 參數(shù)包含了錯誤網(wǎng)站的所有本地變量。 考慮到它很少被用到,而且還會導(dǎo)致內(nèi)部優(yōu)化問題,它現(xiàn)在被廢棄了。 代替用法:調(diào)試器應(yīng)該自己取回錯誤站點(diǎn)的本地變量。

read_exif_data() 函數(shù)

read_exif_data() 別名已被廢棄 使用 exif_read_data() 函數(shù)代替。