-4

好吧,我目前被这个难住了。

我有这个代码:

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

输出 UUUSSS1

所以 UUUSSS 中 U 的字符串替换返回 1 而不是 SSS。

我错过了什么愚蠢的事情?

编辑:

$CHECKVOTINGROW[VOTECHOICES] 原始值是 UUUSSS

我将此标记为删除,感谢您的帮助。一定是其他地方的问题导致问题。我不会让人们使用更多代码进行解析。再次感谢。

4

2 回答 2

0

首先,您正在回显赋值操作的结果:

ECHO $STRREPLACECHECKVOTECHOICES = STR_REPLACE("U","",$CHECKVOTINGROW[VOTECHOICES])

你要这个:

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

回显赋值操作的结果会输出所赋值的值。您提供的输出与该命令的实际输出不一致:

UUUSSSSSSSS

检查你的代码。你拼错===吗?如果 equals 操作成功 ( True),则结果可能会强制转换为1(1 为真,0 为假),从而产生您的输出UUUSSS1。仅供参考:我的 PHP 似乎没有转换True1,但你的可能。

PS:那种编码风格伤害了我的眼睛。

于 2013-09-06T03:15:33.297 回答
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

正如你所观察到的。所以问题仍然存在:您确定给您带来麻烦的代码正是编写的代码吗?

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

于 2013-09-06T03:16:32.777 回答