我们可以使用一个逻辑表达式一次比较多个字符串吗?

时间:2017-01-26 04:53:18

标签: php logical-operators

我试图找到一种更简单的方法来检查一个var在一个比较字符串中不等于多个值。

我发现我可以使用empty()而不是==来减少代码,以获取字符串值。

empty()示例验证我的概念。

if (empty($var_1 . $var_2 . $var_3) { echo 'All these vars are empty, run code...'; }

以上检查$ var_1,$ var_2和$ var_3是否为空。

但使用!==时有没有办法运行类似的东西?

请参阅下面的代码说明......

Test('unknown_value');
echo PHP_EOL;
Test('value_1');

function Test($var = '') {

    // Below method is ideal...

    // if ($var !== 'value_1' . 'value_2' . 'value_3') {

    // Below method is 2nd to ideal

    // if ($var !== 'value_1' and 'value_2' and 'value_3') {

    // But I have to write it like below...
    // I'm looking for a way to not have to write $var !== for each comparison since they will all be not equal to

    if ($var !== 'value_1' and $var !== 'value_2' and $var !== 'value_3') {

        echo 'Failed!!!';

    }

    elseif ($var == 'value_1' or $var == 'value_2' or $var == 'value_3') {

        echo 'Accessed!!!';

    }

}

1 个答案:

答案 0 :(得分:3)

使用 in_array ,如下所示:

if (in_array(trim($someVariable), [ 'this', 'that', 'the other'] )) {
    // $someVariable is one of the elements in the array
}