好吧,我现在很难过。
我有这段代码:
ECHO $CHECKVOTINGROW[VOTECHOICES];
ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
输出UUUSSS1
因此UUUSSS中U的字符串替换是返回1而不是SSS。
我错过了什么愚蠢的事情?
编辑:
$ CHECKVOTINGROW [VOTECHOICES]原始价值是UUUSSS
我将此标记为删除,谢谢你的帮助。必须是其他地方造成问题的问题。我不会让人们接受更多的解析代码。再次感谢。
答案 0 :(得分:0)
首先,您要回显赋值操作的结果:
ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
你想要这个:
$STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES]);
ECHO $STRREPLACECHECKVOTECHOICES;
回显赋值操作的结果输出已分配的值。您提供的输出与该命令的实际输出应该是:
不一致UUUSSSSSSSS
检查您的代码。您是否将==
误导为=
?如果equals操作成功(True
),则结果可能会转换为1
(1为真,0为假),从而产生输出UUUSSS1
。仅供参考:我的PHP似乎没有将True
投射到1
,但您可能会这样做。
答案 1 :(得分:0)
以下作品:
<?php
$ch="UUUSSS";
echo $ch."\n";
$STR = STR_REPLACE("U","",$ch);
echo $STR."\n";
?>
它产生
UUUSSS
SSS
正如所料。
如上所述,您的代码正在回应一项任务......不确定这是一个好主意(尽管这不是非法的)。保持可读性 - 这通常是个好主意。 “每行代码一件事。”
编辑我确实找到了生成输出的方法:
<?php
$ch="UUUSSS";
echo $ch;
$STR = "SSS";
echo $STR == STR_REPLACE("U","",$ch);
echo "\n";
?>
这准确地生成
UUUSSS1
正如你所观察到的那样。所以问题仍然存在:你确定给你带来麻烦的代码是编写的代码吗?
注意 - 在示例中使用短变量名称通常是个好主意......