你的逻辑是:
!$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 OR Mail_From ID 与 Account 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
}
两者都说同样的话。
我希望这会有所帮助!