Php str_替换数字骗局

Php str_替换数字骗局,php,str-replace,Php,Str Replace,好吧,我现在被这个难住了 我有以下代码: ECHO $CHECKVOTINGROW[VOTECHOICES]; ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES]) 输出uuuss1 因此uusss中U的字符串替换返回1而不是SSS 我错过了什么愚蠢的事情 编辑: $CHECKVOTINGROW[VOTECHOICES]原始值为UUSSS 我将此标记为删除,谢谢您的帮助。一定是

好吧,我现在被这个难住了

我有以下代码:

ECHO $CHECKVOTINGROW[VOTECHOICES];  
ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
输出uuuss1

因此uusss中U的字符串替换返回1而不是SSS

我错过了什么愚蠢的事情

编辑:

$CHECKVOTINGROW[VOTECHOICES]原始值为UUSSS


我将此标记为删除,谢谢您的帮助。一定是别的地方出了问题。我不会让人们接受更多的解析代码。再次感谢。

首先,您正在回显分配操作的结果:

ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])
你想要这个:

$STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES]);
ECHO $STRREPLACECHECKVOTECHOICES;
回显赋值操作的结果,输出已赋值的值。您提供的输出与该命令的实际输出不一致:

UUUSSSSSSSS
检查你的代码。你是不是把
==
错当成
=
了?如果equals操作成功(
True
),结果可能会转换为
1
(1为True,0为false),从而导致输出
UUUSSS1
。仅供参考:我的PHP似乎没有将
True
转换为
1
,但你的PHP可能会

注:这种编码方式伤害了我的眼睛。

以下方法有效:

<?php
$ch="UUUSSS";
echo $ch."\n";
$STR = STR_REPLACE("U","",$ch);
echo $STR."\n";
?>
正如所料

如前所述,您的代码正在回显任务。。。不确定这是一个好主意(尽管它不是非法的)。保持可读性——这通常是个好主意。“每行代码一件事”

编辑我确实找到了生成输出的方法:

<?php
$ch="UUUSSS";
echo $ch;
$STR = "SSS";
echo $STR == STR_REPLACE("U","",$ch);
echo "\n";
?>
正如你所观察到的。所以问题仍然存在:您确定给您带来麻烦的代码与编写的代码完全一致吗


注意-在示例中使用短变量名通常是个好主意…

您确定仔细检查了吗@山姆,请指定
$CHECKVOTINGROW[VOTECHOICES]
@CollinJSimpson的值。他在程序中回显了它并显示了输出。请采用更现代的编码风格。如今,所有大写变量名和无引号数组键与所有大写函数调用一样不常见。请停止叫喊!赋值的结果就是被赋值的值,那为什么会引起问题呢?对我来说都是一样的结果。我猜是打字错误吧<代码>1很可能是从
True
转换而来。不然
1
怎么可能潜入那里?@CollinJSimpson你和我一样困惑…@SAM-这真的解决了你的问题吗?“谢谢你的尝试”听起来更像是一个安慰奖。回音只是暂时的,试图让我知道发生了什么。
<?php
$ch="UUUSSS";
echo $ch;
$STR = "SSS";
echo $STR == STR_REPLACE("U","",$ch);
echo "\n";
?>
UUUSSS1