如果OR条件不是';没有按预期工作


IF OR condition isn't working as expected

我有一个for循环,但如果满足条件,我想跳过一些循环。

这很好用,如果$option_nm不是"字体",它将继续循环。

    if($option_nm != "Fonts"){
        continue;
    }

然而,这不起作用,并且跳过所有内容。

    if($option_nm != "Fonts" || $option_nm != "Style" || $option_nm != "Thread" || $option_nm != "Textbox"){
        continue;
    }

我还尝试将||更改为Or,这做了同样的事情。

我做错了什么?

您混淆了OR语句。

你的代码应该是这样的:

if($option_nm != "Fonts" && $option_nm != "Style" && $option_nm != "Thread" && $option_nm != "Textbox"){
        continue;
    }

您的if条件总是返回true,循环继续进行,因为您的if条件使用or||。试试这个。

if($option_nm != "Fonts" && $option_nm != "Style" && $option_nm != "Thread" && $option_nm != "Textbox"){
    continue;
}

尽管你的帖子已经发布一年多了,但我会给出另一个解决方案。

您可以使用php中的in_array功能,并在语句周围执行否定的if语句。

$elements = array("Fonts", "Style", "Thread", "Textbox")
if (!in_array($option_nm, $elements)) { continue;}

这使得将来的维护变得简单且易于阅读。