我知道这是基本的布尔逻辑,但我卡住了:
我正在遍历数据库结果,对于每个结果,我都需要检查以下条件:
if($old_value != $new_value)
如果以上为真,则动作为:
$old_value = $new_value;
但是还有一个次要条件。如果行类型为"date",我还需要检查$new_value
是否为空,但操作仍然相同。现在,我是这样做的:
if($old_value != $new_value) {
if($type != date) {
$old_value = $new_value;
} elseif(!empty($new_value)) {
$old_value = $new_value;
}
我已经过度简化了上面的内容,但实际上,一行操作实际上是几行,我知道我不需要根据次要条件重复。
但是我不知道怎样才能把内部条件和外部条件结合起来。如果我这样做:
if(($old_value != $new_value) && ($type == 'date' && !empty($new_value))
那么只有当行类型为date时,它才会返回true。
尝试:
if(($old_value != $new_value) && ($type != 'date' || !empty($new_value))
应该可以了。
if(($old_value != $new_value) && ($type != 'date' || ($type == 'date' && !empty($new_value)))