如何简化PHP逻辑运算符?

时间:2017-04-07 07:09:44

标签: php logical-operators

我已经搜索并阅读了文档并对这些逻辑运算符进行了实验,但似乎没有任何效果。我想简化我的if语句,这样如果变量相同,我就不需要继续重写它。例如:

<?php
if($var_1 == 'val_1' || $var_1 == 'val_2' || $var_1 == 'val_3' || $var_2 == 'val_4' || $var_2 == 'val_2' || $var_3 == 'val_5') {
    // Do something
} else {
    ....
}
?>

我想简化它是这样的:

<?php
if($var_1 == ('val_1' || 'val_2' || 'val_3') || $var_2 == ('val_4' || 'val_2') || $var_3 == 'val_5') {
    // Do something..
}
?>

但是上面的代码不起作用,所以不是为每个不同的值反复写$ var_1,我该怎么写呢?我正在使用IF语句,而不是SWITCH或任何其他语句严格寻找答案,我知道我可以在这种情况下使用switch,但我特意寻找逻辑运算符。

提前谢谢。

3 个答案:

答案 0 :(得分:2)

我喜欢这个:

<?php
if(in_array($var_1, array('val_1', 'val_2', 'val_3')) || in_array($var_2, array('val_4', 'val_2')) || $var_3 == 'val_5') {
    // Do something..
}
?>

请参阅in_array()

答案 1 :(得分:0)

您可以使用in_array()功能。

  

in_array - 检查数组中是否存在值

<?php

$var_1_array = array('val_1', 'val_2', 'val_3');
$var_2_array = array('val_2', 'val_4');
$var_3_array = array('val_5', 'val_6');

if(in_array($var_1, $var_1_array) || in_array($var_2, $var_2_array) || in_array($var_3, $var_3_array)) {
    // Do something..
}

&GT;

答案 2 :(得分:0)

您可以使用in_array()功能。有关此主题的更多信息:http://php.net/manual/en/function.in-array.php。 例如。

<?php
//Define your arrays or get them from some query.. etc
$array1 = array("val_1", "val_2", "val_3");
$array2 = array("val_4, val_2");
$array5 = array("val_5");

//Check if variables are in the defined arrays
if (in_array("var_1", $array1) || in_array("var_2", $array2) || in_array("var_3", $array3)) {
//Do something

}

?>