我知道这是基本的 boolean 逻辑,但我卡住了:
我正在遍历数据库结果,对于每个结果我都需要检查以下条件:
if($old_value != $new_value)
如果以上为真,则操作为:
$old_value = $new_value;
但是还有一个次要条件。如果该行的类型为“日期”,我还需要检查 $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))
那么它唯一会返回 true 的时间是当行是日期类型时。
最佳答案
尝试:
if(($old_value != $new_value) && ($type != 'date' || !empty($new_value))
应该可以了。如果您需要帮助了解原因,请告诉我。
关于php - 基本 boolean 逻辑——如何仅在另一个条件为真时测试条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822161/