【发布时间】:2015-12-22 16:00:52
【问题描述】:
所以我有这个代码:
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
【问题讨论】:
-
您应该显示变量实际包含的内容。使用
var_dump,而不是echo。 -
非常不清楚的问题。我不知道你想做什么
-
我怀疑 $argi[2][$iterate2][$iterate];是一个包含“真”或“假”的字符串。正如@mario 提到的,使用 var_dump 代替
-
这应该不会对代码产生任何影响,但请尝试将“TRUE”更改为“true”,换句话说,不要大写。也有@mario 说发布你想要的 var_dump
-
您是否尝试使用 true(小写)而不是 TRUE(大写)?
标签: php if-statement for-loop foreach