首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php "if“条件之谜

php "if“条件之谜
EN

Stack Overflow用户
提问于 2011-07-09 07:46:44
回答 9查看 350关注 0票数 4

我遇到了一个恶作剧的“如果”的问题:

代码语言:javascript
复制
$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"?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-07-09 07:54:26

这里的问题是你把你的表达式放在字符串中!

您的$condition1$condition2$condition3变量包含字符串,而不是表达式的结果,$condition变量也是如此,它将是一个看起来像53==56||53==57||53==58的字符串。当PHP计算一个字符串时,如果它不为空并且不等于0,它就认为它是true,所以你的脚本将输出blah

要解决这个问题,您只需将表达式从字符串中删除即可。它应该看起来像这样:

代码语言:javascript
复制
$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
}
票数 8
EN

Stack Overflow用户

发布于 2011-07-09 07:49:27

您将字符串作为布尔值进行计算;它们总是为真(除了字符串"""0"。去掉程序中几乎所有的引号。

票数 7
EN

Stack Overflow用户

发布于 2011-07-09 07:49:52

这些不是条件,它们是字符串。

代码语言:javascript
复制
$condition1=53==56;
$condition2=53==57;
$condition3=53==58;
$condition=$condition1 || $condition2 || $condition3;
if($condition)
{
    echo "blah";
}
else
{
    echo "foo";
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6631702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档