在PHP中使用具有多个条件的逻辑OR运算符的正确语法是什么?

时间:2013-12-15 16:26:41

标签: php

我对PHP比较新。我的问题是,当我有括号时如何使用OR逻辑?我有以下代码行:

if (get_option('nl_heading_font') === "Alegreya Sans") {
//do something
}

我想添加:

if (get_option('nl_body_font') === "Alegreya Sans") {
//do something
}

我可以这样做:

if (get_option('nl_body_font' || 'nl_heading_font') === "Alegreya Sans") {
//do something
}

或者

if (get_option('nl_body_font') === "Alegreya Sans") || (get_option('nl_heading_font') === "Alegreya Sans") {
//do something
}

1 个答案:

答案 0 :(得分:2)

根据您的问题,最好的选择就是这个。但是你需要为OR / ||子句添加额外的括号,如下所示:

if ((get_option('nl_body_font') === "Alegreya Sans") || (get_option('nl_heading_font') === "Alegreya Sans")) {
//do something
}

if()的构造需要它自己的括号。因此,如果要嵌套更多条件,则需要添加更多括号。但是看一下你的代码,你可以删除每个子句周围的额外括号。没关系:

if (get_option('nl_body_font') === "Alegreya Sans" || get_option('nl_heading_font') === "Alegreya Sans") {
//do something
}

但是所有这些都会说,看看你的逻辑更好的方法来处理这个问题就是使用一个数组。所以你的代码就像这样:

$nl_body_font_array = array('nl_body_font', 'nl_heading_font');
foreach ($nl_body_font_array as $nl_body_font_value) {
  if (get_option($nl_body_font_value) === "Alegreya Sans")) {
    //do something
  }
}

这样,您只需创建一个包含任意数量值的数组,然后通过循环将它们推送到if逻辑中。更易于阅读和阅读随着代码库的增长而调试。