2017-04-07 140 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.. 
} 

>