私はこれが基本的なブール論理ですけど、私はこだわっている:基本ブール論理 - 他の条件が真である場合にのみ、条件をテストする方法
私はデータベースの結果をループしていて、それぞれに対して私が必要以下の条件を確認するために:
$old_value = $new_value;
しかし、二次条件があります:上記がtrueの場合
if($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))
を行はdate型である場合、それはtrueを返します唯一の時間です。
私は分かりません。具体的には、 '$ new_value'が空であるたびに、第2節のORがtrueを返すのではなく、型が' date'のときだけではないでしょうか? – Anthony
はい、そうです。式全体は、old_valueがnew_valueと同じものではない場合と同じです。AND(日付について話していないか、日付について話していますが、$ new_valueは空です)。 – Patrick87
ああ、 '$ type!= 'date' 'も真であるので、'!empty($ new_value) 'が真であるかどうかは関係ありませんので、条件が合格してアクションが発生します。この目隠しをするのに十分な時間を取るのにまだ時間がかかりますが、理にかなっています。ありがとう! – Anthony