我很好奇,有没有一种方法可以用逻辑压缩这个条件:
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
}