如此处给出的str_replace() 计数参数应在某些替换完成时停止。对?
这是我的代码:
define("PLACEHOLDER", "INSERT INTO `listings` VALUES (NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s');".PHP_EOL);
$r = (4 - count($_POST['ad']));
print count($_POST['ad'])."\n";
print $r;
$pf_args = str_replace("'%s', ", "", PLACEHOLDER, $r);
print $pf_args;
现在,我仔细检查了$r = 1
我的测试中的所有内容,并确定count($_POST['ad'])
是 3。不过,str_replace 完全忽略了 count 参数并替换了所有出现的情况以给出:
INSERT INTO `listings` VALUES (NULL, '%s');
这让我发疯。看过这么多反 php 的演讲,这些古怪的行为让我觉得它们是 bug 或它所拥有的另一种奇怪的魔法。