php使用strpos排除多个单词替换if语句中的多个比较

时间:2017-01-03 21:03:18

标签: php

如何使用strpos排除多个字词?我正在使用此代码,但它看起来很难看。

if (strpos($ul_n, 'word1') === false) {
if (strpos($ul_n, 'word2') === false) {
if (strpos($ul_n, 'word3') === false) {
if (strpos($ul_n, 'word4') === false) {
/----do something
}
}
}
}

2 个答案:

答案 0 :(得分:1)

一种方法是将您正在寻找的单词放在数组中并循环遍历它们。在循环之后,如果没有找到它们,你可以做你的“某事”。

$found_word = false;
foreach (['word1','word2','word3','word4',] as $word) {
    if (strpos($ul_n, $word) !== false) {
        $found_word = true;
        break;
    }
}
if (!$found_word) {
    // do something
}

答案 1 :(得分:1)

您可以将它们与if

组合,而不是嵌套&&
if (strpos($ul_n, 'word1') === false && strpos($ul_n, 'word2') === false && ...) {
    // do something
}

但更简单的方法是使用正则表达式:

if (!preg_match('/word1|word2|word3|word4/') {
    // do something
}
正则表达式中的

|指定备选方案,因此只要任何单词匹配,它就会匹配。