PHP,如果或是否有一些问题

时间:2011-05-25 18:01:06

标签: php

我试图在PHP中拼凑一些东西。我似乎无法让这个简单的工作。

我想要的结果是如果$ x = 4,5或6输出应该是hello x是($ x的值)

这是代码:

<?php
    $x = 1;
if ($x != 4 || $x != 5 || $x != 6)
    {echo "hello ";
    echo "x is $x";}
 ?>

在上面的示例中,输出为“hello x is 1”

但是,如果我将代码的第一行更改为$ x = 4,则当输出应为空白时,预期输出为“hello x为4”。

谢谢, 克里斯

7 个答案:

答案 0 :(得分:2)

  

我想要的结果是如果$ x = 4,5或6输出应该是hello x是($ x的值)

在这种情况下,这个:

if ($x != 4 || $x != 5 || $x != 6)

应该是:

if ($x == 4 || $x == 5 || $x == 6)

或:

if (in_array($x, array(4,5,6)))

答案 1 :(得分:1)

试试这个:

$x = 4;
if ($x == 4 || $x == 5 || $x == 6)
{echo "hello ";
echo "x is $x";}

答案 2 :(得分:1)

你有相反的逻辑。你需要

if ($x == 4 || $x == 5 || $x == 6)

答案 3 :(得分:1)

你的代码运作正常 - 你写的条件永远都是真的。也就是说,x总是不是4或不是5或不是6.

如果要检查相等性,请写下if ($x==4 || $x==5 || $x==6)

答案 4 :(得分:0)

我能想到的最短版本是:

if ( in_array($x, array(4,5,6)) ) {
    echo 'hello, x is ' . $x;
}

如果$x位于以下值列表中,则会匹配上述条件:456

有关详情,请参阅in_array() documentation

为什么您的代码失败

您的代码未按预期运行的原因是因为您创建了一个条件,其中包含替代(or||),如果任何表达式中的它匹配。

这意味着,因为至少有一个表达式(例如。$x != 4,但如果$x等于1所有表达式都匹配)匹配,指令已经执行。

答案 5 :(得分:0)

试试这段代码:

<?php
    $x = 1;
if ($x == 4 || $x == 5 || $x == 6)
    {echo "hello ";
    echo "x is $x";}
?>

答案 6 :(得分:0)

OR(||)的逻辑表:

T || T == T

T || F == T

F || T == T

F || F == F

AND(&amp;&amp;)的逻辑表:

T&amp;&amp; T == T

T&amp;&amp; F == F

F&amp;&amp; T == F

F&amp;&amp; F == F

因此对于1:

的情况

1!= 4 || 1!= 5 || 1!= 6

T || T || T == T(因此回声)

对于4的情况:

4!= 4 || 4!= 5 || 4!= 6

F || T || T == T(因此回声)