是否有一个合乎逻辑的方法来做这个条件


Is there a logical way to do this condition?

我很好奇,有没有一种方法可以用逻辑压缩这个条件:

if($var1 == 'foo' || $var2 == 'foo' OR $var3 == 'foo')

变成更紧凑的东西,比如:

if(($var1 ||$var2 || $var3) == 'foo')

我认为php不允许这样做,但我很好奇是否有一个"逻辑技巧"来做一些或多或少类似的事情(即使条件最终比原来更长)?

in_array()可以缩短一点:

if (in_array('foo', array($var1, $var2, $var3))) {
}

在测试了几种可能性之后,我认为in_array()是您的最佳选择。约翰的答案是其中之一,也是最初/第一个给出的答案;这只是。

的补充。

你可以这样做,并事先设置一个数组,如果这是你想要做的,为任何其他添加的变量。

$var1 =  "foo"; // yep
$var2 =  "foo2"; // nope
$var3 =  "foo3"; // nope
$var4 =  "foo"; // yep
$vars = array("$var1","$var2","$var3","$var4");
if (in_array("foo", $vars)) //Founds a match !
{
    echo "Yep";
}
else
{
    echo "Nope";
}

你可以:

if (($var1 == $var2) && ($var2 == $var3)) {
    // hurrah they're the same
}