如何检查多个条件isset表达式是否为真值


how to check a multiple conditional isset expression for true values?

我有一个关于isset()具有多个条件的问题,并检查以确保它们返回非空或正确的结果。

我正在尝试解决一个isset表达式,看起来像:

if(isset($content['field_1']) && $content['field_2'] && $content['field_3']=="top"){
    do a thing
}

我明白,如果field_1为真,那么其他条件被视为真。

我的"if"语句在创建幻灯片时循环了几次。大多数创建的幻灯片都有真实的结果,并且很好,但有几张幻灯片的值存在,但不完全符合要求。代码可以工作,但是drupal错误日志中充满了"undefined index"的警告。

我的问题是:在校对每个部分时,拥有多个条件isset的最佳方法是什么?在"if"之后一个简单的"else"并不能解决这个问题,因为它是多个条件(我认为)。我不知道是否有比在继续之前将多个条件分解成单个条件更简单的方法来处理这个问题。

如果有人读到这有问题,或者如果我的问题不清楚,请让我知道。我很乐意澄清。谢谢!

我明白,如果field_1为真,那么其他条件被视为真。

你的假设是错误的。您不检查由键field_1引用的$content的值,您检查是否存在这样的键-这是两件不同的事情。您还可以使用&& (AND)运算符,在这种情况下,如果一个条件返回false,那么评估剩余的是毫无意义的,因为通过布尔逻辑,整个表达式将是false

try this:

if ((!empty($content['field_1']) || !empty($content['field_2'])) && !empty($content['field_3']) && $content['field_3'] == 'top') {
    // Do Something
}