0

嗨,我正在做一个有条件的

if ($row['ConsignadaCaja'] === 'si' && $row['Estado'] ==! 'I') {
                $pago = 0;
}

它不像我想要的那样工作

所以我尝试使用

if ($row['ConsignadaCaja'] === 'si' && $row['Estado'] =! 'I') {
                $pago = 0;
}

但它也不起作用

最后我试试这个:

if ($row['ConsignadaCaja'] === 'si' && $row['Estado'] <> 'I') {
                $pago = 0;
}

这是有效的,但为什么不呢?

4

1 回答 1

2

==!不是您正在考虑的运算符 - 您在这里混合了两个运算符。

== 检查是否相等,并且!是一个逻辑非操作。因此,由于运算符优先级!高于比较或赋值运算符,您实际上正在执行其中之一:

if( $row['Estado'] = (!'I'))  // Assigns the inverted value of 'I' to $row['Estado']
if( $row['Estado'] == (!'I')) // Compares the inverted value of 'I' to $row['Estado']

相反,您应该使用!=or !==,这取决于您是否希望发生类型强制。

请注意,如果您看到它<>按预期工作,这与!=运算符相同。

于 2013-08-22T17:03:40.663 回答