不帶引號的字符串是不存在的全局常量,轉化成他們自身的字符串。
在以前,該行為會產生
E_NOTICE
,但現在會產生
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"
*/
GD 擴展內的 png2wbmp() 和 jpeg2wbmp() 現已被廢棄,將在下一個 PHP 主版本中移除。
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() 方法已被廢棄, 因為和 spl_autoload_register() 相比功能較差 (因為無法鏈式處理多個 autoloader), 而且也無法在兩種 autoloading 樣式中配合使用。
track_errors
ini 設置和 $php_errormsg
變量
當開啟了 track_errors
ini 設置,出現非致命錯誤時,
會在本地作用域創(chuàng)建 $php_errormsg
變量。
由于提供了更好的方式: error_get_last() 來獲取此類錯誤信息,該功能被廢棄。
mbstring.func_overload
ini 設置由于此設置會影響環(huán)境中的字符串系列函數,帶來相互操作中的問題,它現在已被廢棄。
(unset)
類型強制轉化
轉化任意表達式為此類型,結果總是 null
,所以這個多余的類型轉化現在也就被廢棄了。
使用 parse_str() 時,不加第二個參數會導致查詢字符串參數導入當前符號表。 考慮到安全隱患問題,不加第二個參數使用 parse_str() 的行為已被廢棄。 此函數的第二個選項為必填項,它使查詢字符串轉為 Array。
此函數基于未知的、取決于平臺的 limb 尺寸產生隨機數。因此,該函數已被廢棄。 使用更好的方式產生隨機數: GMP 擴展中的 gmp_random_bits() 和 gmp_random_range()。
使用此函數遍歷時,比普通的 foreach
更慢,
并且給新語法的變化帶來實現問題。因此它被廢棄了。
assert() 字符串參數將要求它能被 eval() 執(zhí)行。 考慮到可能被執(zhí)行遠程代碼,廢棄了字符串的 assert(),最好提供 bool 的表達式。
$errcontext
參數
$errcontext
參數包含了錯誤網站的所有本地變量。
考慮到它很少被用到,而且還會導致內部優(yōu)化問題,它現在被廢棄了。
代替用法:調試器應該自己取回錯誤站點的本地變量。
read_exif_data() 別名已被廢棄 使用 exif_read_data() 函數代替。