我试图在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”。
谢谢, 克里斯
答案 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
位于以下值列表中,则会匹配上述条件:4
,5
和6
。
有关详情,请参阅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 == FF&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(因此回声)