所以我有这个代码:
echo $argi[2][$iterate2][$iterate];
if ($argi[2][$iterate2][$iterate]==TRUE){
echo " It's true ";
}
结果是:
或
你知道为什么吗?我试着把IF改成var=TRUE, var===TRUE, var==" TRUE ", var=1
这些都不起作用。我以前没有遇到过这种问题,真是奇怪……
注:If语句在两个foreach循环中。我不知道这是否重要……
编辑
我把echo改为var_dump,结果是:
string(5) "false" It's true
编辑2
下面是脚本的一部分:
$iterate2=0;
foreach ($UpdateData as $key => $value) {
$sql.="UPDATE `addtmptable` SET ";
$sql.="$key = CASE ";
$iterate=0;
foreach ($value as $val) {
$sql.="WHEN user = '$UpdateDataU[$iterate]' THEN $val ";
var_dump($argi[2][$iterate2][$iterate]);
if ($argi[2][$iterate2][$iterate]==true){
echo " It's true ";
}
$iterate++;
}
$sql.=";";
$iterate2++;
}
我停在这里,我想触发内部foreach如果语句为真
你正在用一个布尔值测试一个字符串。
求值为false的字符串只有"answers"0"。
if (strtolower($argi[2][$iterate2][$iterate]) != "false") {
echo " It's true ";
}
具有任何值的字符串将始终计算为布尔值true
。将比较值改为$argi[2][$iterate2][$iterate] == "TRUE"