我正在查看引发上述错误的以下代码部分:
$rv = "'".str_replace("'", "''", str_replace(':', '\\x3a', str_replace('\\', '\\x5c', $value)))."'";
为了使这更容易阅读,我将上面的内容分解为离散的陈述:
$sq = "'";
$dq = "''";
$sr1_value = str_replace(':', '\\x3a', $value);
$sr2_value = str_replace('\\', '\\x5c', $sr1_value);
$sr3_value = str_replace($sq, $dq, $sr2_value);
$sr4_value = $sq.$sr3_value.$sq;
$rv = $sr4_value;
倒数第二行导致出现数组到字符串的转换错误。
我尝试过连接该字符串的其他方法(即括号、substr_replace),我什至尝试在 sr3_value 上使用 implode,这会引发“参数必须是数组”的错误。
我很困惑,因为最初似乎错误是 sr3_value 是一个数组,但是将它作为参数传递给 implode() 表明它不是。
有任何想法吗?
谢谢,
-约翰