如果OR条件没有按预期工作

时间:2015-03-24 11:26:30

标签: php

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

这样可以正常工作,并且如果$option_nm不是“字体”,则会继续循环。

    if($option_nm != "Fonts"){

        continue;
    }

但是,这不起作用,并且会跳过所有内容。

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

        continue;
    }

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

我做错了什么?

3 个答案:

答案 0 :(得分:2)

您混淆了OR声明。

您的代码应该是:

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

        continue;
    }

答案 1 :(得分:1)

您的if条件始终返回true并且循环继续,因为您使用{if}条件or||。 试试这个。

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

    continue;
}

答案 2 :(得分:1)

  

即使您的帖子超过一年,我也会提供另一种解决方案。

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

$elements = array("Fonts", "Style", "Thread", "Textbox")

if (!in_array($option_nm, $elements)) { continue;}

这使得未来的维护变得简单易读。

相关问题