修正PHP 8.1 中已棄用的向參數傳遞Null 錯誤:覆蓋內建函數
PHP 8.1 已停止靜默轉換nullull 的做法關鍵內建函數(如htmlspecialchars 和trim)中空字串的參數。這給許多開發人員帶來了錯誤。
解決方案:重新命名內建函數
一個建議的解決方案是重命名原始函數並引入轉換空輸入的包裝函數到空字串。但是,PECL apd 擴充功能中的 rename_function() 函數曾經是一種流行的函數重命名方法,但不再受支援。
替代方法
1 。空合併運算子
最直接的解決方法是使用空合併運算子(??'')在空輸入的情況下指定預設值。例如:
htmlspecialchars($something ?? '')
2。自訂函數
另一個選擇是建立自訂函數,例如 nullable_htmlspecialchars(),並使用尋找和取代來取代內建函數。
3.命名空間自訂函數
為了更好地組織,請使用命名空間自訂函數,例如nullableoverridehtmlspecialchars(),並在每個檔案的開頭加入use 函數語句。
4。靜態分析工具
像Rector這樣的工具可以自動化加入??''到符合條件的函數呼叫的過程,減少手動工作量。
5.正規表示式找出並取代
簡單的情況可以使用正規表示式在函數呼叫中加上 ??'' 來處理。
注意:
重要的是要記住,PHP 8.1 僅棄用這些函數調用,這意味著它們還不是錯誤。開發人員必須在 PHP 9.0 之前解決這些問題。如果您在第三方程式碼中遇到問題,請考慮聯絡程式庫維護人員。
以上是如何處理 PHP 8.1 中已棄用的將 Null 傳遞給參數的行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!