2017-04-07 79 views
0

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

<?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,但我特别寻找逻辑运算符。

预先感谢您。

回答

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 

} 

?> 
+0

那么谢谢你,这是行不通的。 – Charas

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()

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.. 
} 

>