あなたのロジックは次のとおりです。
!$mail['to_id'] == $account['id']
&&
!$mail['from_id'] == $account['id']
問題はこれを行うことから生じます:
!$mail['to_id']
と
!$mail['from_id']
逆演算子 (!) は、適用対象の値を反転します。この場合、$mail ID の値を反転しています。これらの ID は整数であるため、おそらくあなたが考えていることにはなりません。
これを前向きに考えてから、全体を逆にすることが役立つかもしれません。
良い点は次のとおりです。
$mail['to_id'] == $account['id']
&&
$mail['from_id'] == $account['id']
その逆は、全体を "!" で囲むことです。(括弧に注意してください):
!(
$mail['to_id'] == $account['id']
&&
$mail['from_id'] == $account['id']
)
代数の規則を使用して、「!」を乗算することでそのステートメントを変換できます。各要素に対して (AND 演算子を含む)。
!($mail['to_id'] == $account['id']) // Note you apply the inverse of to the whole expression
!&& // this isn't an actual code but for demonstration purposes
!($mail['from_id'] == $account['id']) // Note you apply the inverse of to the whole expression
これは次のように単純化されます。
$mail['to_id'] != $account['id'] // Not Equal is inverse of equal
|| // the inverse of && (AND) is || (OR)
$mail['from_id'] != $account['id'] // Not Equal is inverse of equal
どの州:
「 Mail_To IDまたはMail_From ID がアカウント ID と一致しない場合は、次のコードを実行してください」
したがって、一日の終わりには、次のものを使用できるはずです。
if( $mail['to_id'] != $account['id'] || $mail['from_id'] != $account['id'] )
{
// do something
}
また
if( !( $mail['to_id'] == $account['id'] && $mail['from_id'] == $account['id']) )
{
// do something
}
どちらも同じことを言っています。
それが役立つことを願っています!