if语句条件是否触发,无论是否满足条件

时间:2015-11-14 07:14:32

标签: php if-statement operators conditional-statements execute

此if语句触发,无论条件中的值如何,为了便于解释,我将替换数字。无论条件是否为真,为什么条件会触发执行。我已尝试过每个场景,但每次都会触发语句中的执行。

if(1 != 1 && 1 != 2 ){
execute code
exit();
 }

这是确切的代码:

if($name1 != $winner && $name2 != $winner ){
echo " The player you chose as winner is not associated with match id: $match_id ";
exit();
}

2 个答案:

答案 0 :(得分:1)

帖子中提到的条件无法返回true

但是,如果你编写类似下面的代码,你所说的可能会发生:

if(1 != 1 && 1 != 2 );{
    echo 'case 1';
}

注意if()之后的;。你确定你的代码在if()之后没有分号吗?如果您错误地放置了;,那么if语句将被评估为单行语句,并且if-block中的代码被解释器视为if条件的外部。 / p>

根据更新后的问题进行修改

请检查以下内容:

  1. $winner已正确设置为$name1$name2
  2. 验证$winner的变量声明范围是否正确 - 自从我完成PHP以来已经有一段时间了,但这可能还有其他需要注意的地方。
  3. 除了这些之外,我没有看到任何其他原因导致此代码的行为与您所声明的方式相同。

答案 1 :(得分:0)

只是可能......仔细查看所涉及的四个变量的值。

使用!=进行比较可以得到一些令人惊讶的结果。

请参阅herehere。编辑:链接已修复

即使这不能解决这个问题,最好尽量使用!==尽可能。