我遇到了一个恶作剧的“如果”的问题:
$condition1="53==56";
$condition2="53==57";
$condition3="53==58";
$condition=$condition1."||".$condition2."||".$condition3;
if($condition)
{
echo "blah";
}
else
{
echo "foo";
}为什么会通过if条件?为什么php会回应"blah"?我该怎么做才能让php计算"if“语句并打印"foo"?
发布于 2011-07-09 07:54:26
这里的问题是你把你的表达式放在字符串中!
您的$condition1、$condition2和$condition3变量包含字符串,而不是表达式的结果,$condition变量也是如此,它将是一个看起来像53==56||53==57||53==58的字符串。当PHP计算一个字符串时,如果它不为空并且不等于0,它就认为它是true,所以你的脚本将输出blah。
要解决这个问题,您只需将表达式从字符串中删除即可。它应该看起来像这样:
$condition1 = 53 == 56; // false
$condition2 = 53 == 57; // false
$condition3 = 53 == 58; // false
$condition = $condition1 || $condition2 || $condition3; // false || false || false = false
if ($condition) {
echo 'blah';
} else {
echo 'foo'; // This will be output
}https://stackoverflow.com/questions/6631702
复制相似问题