Php 比较字符串时无法使IF语句工作
我正在尝试一个相当简单的测试,使用一个HTML复选框,用户可以在我的测试中选择最多四项食物。所选项目被传递到一个PHP脚本,我在其中对照所选项目检查它们,以确定用户选择了什么 基于此,我使用if语句来确定用户选择的内容,并将二进制值写入数组以供将来处理,这是下一个要处理的项目 我的问题是,我无法让if语句成为真。正如您从代码中看到的,我使用trim去掉了多余的字符,并使用var_dump和print命令查看在输入if语句集之前的内容 到目前为止,一切似乎都还不错,但if语句永远都不是真的,我在每个语句中都加入了echo语句来告诉我这一点。下面是当我选择了所有四种食物时,有问题的代码片段和PHP脚本的输出。我很感激你的洞察力 ps-我也尝试用strcmp代替IF语句,但没有效果 PHP:Php 比较字符串时无法使IF语句工作,php,Php,我正在尝试一个相当简单的测试,使用一个HTML复选框,用户可以在我的测试中选择最多四项食物。所选项目被传递到一个PHP脚本,我在其中对照所选项目检查它们,以确定用户选择了什么 基于此,我使用if语句来确定用户选择的内容,并将二进制值写入数组以供将来处理,这是下一个要处理的项目 我的问题是,我无法让if语句成为真。正如您从代码中看到的,我使用trim去掉了多余的字符,并使用var_dump和print命令查看在输入if语句集之前的内容 到目前为止,一切似乎都还不错,但if语句永远都不是真的,我在每
for ($i=0; $i<count($userChecked ); $i++) {
// var_dump to show what exactly was passed
trim($userChecked[$i]);
var_dump($userChecked[$i]);
print "<pre>[".$userChecked[$i]."]</pre>";
// now go through each checked item to see where the match is
// echo that we have a match and set the corresponding array value to 1
if ($userChecked[i]=="soup") {
echo "the user wants soup<br />";
$pref_array[0] = '1';
}
if ($userChecked[i]=="salad") {
echo "the user wants salad<br />";
$pref_array[1] = '1';
}
if ($userChecked[i]=="cheese") {
echo "the user wants cheese<br />";
$pref_array[2] = '1';
}
if ($userChecked[i]=="sardines") {
echo "the user wants sardines<br />";
$pref_array[3] = '1';
}
}
选中所有复选框时的输出:汤、沙拉、奶酪、沙丁鱼:
汤
[汤]
色拉
[沙拉]
丝状奶酪
[奶酪]
8条沙丁鱼
[sardines]$userChecked[i]不会给出输出,因为i不是数组的索引或数组的键。因此,您必须使用$userChecked[$i]来代替$userChecked[i]不会给出输出,因为i不是数组的索引或数组的键。因此,您必须使用$userChecked[$i]来代替您希望$userChecked[$i]而不是[i]——i不是范围中定义的常量。打开错误报告,您将更快地发现此类错误:@Martin Sharp eyes.:也许最好将字符串与您想要的$userChecked[$i]而不是[i]-i不是范围中定义的常量进行比较。打开错误报告,您将更快地发现此类错误:@Martin Sharp eyes.:也许比较字符串更好,非常感谢!这使得IF语句按预期的方式工作。也感谢您的快速回复戴维森:非常感谢你!这使得IF语句按预期的方式工作。也感谢您的快速回复戴夫