我希望能够执行以下操作但无法执行,因为值未传递到下一个if
语句。
if(something){
$x=SomeValue;
if(something){
$y=SomeValue;
if($x==$y){
echo"x & y matches";
}
}
}
我也在相应的$GLOBALS
声明中尝试if
,但仍然无效。
如何传递$x
&的值? $y
到第三个if()
声明
实际代码
if($i%2) {
$dx1 = $row['sec1'];
echo $dx1;
if($i%2==0){
$dx2 = $row['sec2'];
echo $dx2;
if($dx1==$dx2){echo $dx1." do not match ".$dx2;}
}
}
}
答案 0 :(得分:4)
在PHP中,任何不“为空”的值都被视为“真实”;在整数的情况下,这意味着0
为假,其他一切都为真。因此if($i%2)
与if( $i % 2 != 0 )
相同。
稍后,您将嵌入内if
看起来相似的条件if($i%2==0)
,实际上正好相反。要到达内部if
,您必须首先进入外部if
,因此两个条件都必须为真才能到达最里面的代码。
正如你所说,条件相当于“$ i is odd”和“$ i is even”。要进入第一个if语句,$i
必须是奇数;但要进入第二个,它必须也是偶数。 $i
的任何值都不会满足这两个条件,因此永远不会达到最内层的代码。