如何检查多值条件isset表达式的真值?

时间:2015-10-23 19:43:51

标签: php isset

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

我正在尝试解决看起来像这样的isset表达式:

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

我理解如果field_1为true,则其他条件被视为true。

我的"如果"正在制作幻灯片时,声明已经循环了几次。 创建的大多数幻灯片都具有真正的结果并且很好,但是有一些幻灯片存在值但不完全符合要求。 该代码有效,但是drupal错误日志会被填充警告" undefined index"。

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

如果有人认为这有问题,或者如果我的问题不明确pelase请告诉我。我很乐意澄清。 谢谢!

2 个答案:

答案 0 :(得分:0)

  

我理解如果field_1为true,则其他条件被视为true。

你的假设是错误的。您不检查密钥$content引用的field_1的值,检查是否存在此类密钥 - 这些是两个不同的东西。你也使用&&(AND)运算符,在这种情况下,如果一个条件返回false,那么通过布尔逻辑评估剩余是没有意义的,整个表达式将是false

答案 1 :(得分:0)

试试这个:

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