PHP 8.1 已弃用将null
参数传递给许多核心函数。我的主要问题是像htmlspecialchars(php)
and 这样的函数trim(php)
,它null
不再默默地转换为空字符串。
为了在不使用大量代码的情况下解决这个问题,我试图重命名原始的内置函数,并将它们替换为将输入转换为null
(空)字符串的包装器。
我使用这种方法的主要问题是,该功能rename_function(PECL apd)
不再起作用,最后一次更新是从 2004 1开始。
我需要对内置函数进行某种重写,以避免每次调用函数时都编写空检查,从而使我的所有代码变大两倍。
我能想到的唯一其他解决方案是仅使用我的自定义函数,但这仍然需要遍历我拥有的所有代码和第三方库。
在 PHP 8.1 中,当将 null 传递给内置函数时,它不再默默地转换为空字符串。
我在用 utf-8 波兰字符拆分单词时遇到问题。
我一直在检查 php 文档中的 str_split,但没有设置字符集的参数。
我有字:“ma?a” 我必须用字母分割它以用跨度包装每个单个字母并在结果中返回 html 字符串。
str_split('ma?a') 的结果:
array:5 [
0 => "m"
1 => "a"
2 => b"Å"
3 => b"‚"
4 => "a"
]
Run Code Online (Sandbox Code Playgroud)
json_last_error_message() 返回“格式错误的 UTF-8 字符,可能编码不正确”错误,所以我认为这是与波兰语字母相关的问题,但我找不到设置 str_split 字符集的方法。
这是要进行 JSON 编码的准备好的数组:
array:2 [
"pieces" => array:6 [
0 => "<span class="dropable">m</span><span class="dropable">a</span><span class="dropable">m</span><span class="dropable">a</span>"
1 => "<span class="dropable">m</span><span class="dropable">a</span><span class="dropable">s</span><span class="dropable">a</span>"
2 => "<span class="dropable">m</span><span class="dropable">a</span><span class="dropable">p</span><span class="dropable">a</span>"
3 => b"<span class="dropable">m</span><span class="dropable">a</span><span class="dropable">Å</span><span class="dropable">‚</span><span class="dropable">a</span>" …
Run Code Online (Sandbox Code Playgroud)