我有一个关于带有多个条件的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请告诉我。我很乐意澄清。 谢谢!
答案 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
}