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