修复 PHP 8.1 中已弃用的向参数传递 Null 错误:覆盖内置函数
PHP 8.1 已停止静默转换 null 的做法关键内置函数(如 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中文网其他相关文章!