比较if语句中包含零

时间:2015-06-16 13:21:48

标签: php if-statement comparison

这有点难以解释,但我之前从未遇到过这种情况,所以我不知道如何正确接近它。我正在编写一个Web应用程序,在提交表单时,它需要两个值,即当前值和提交的值。

提交表单后,会检查新值是否与当前值不同。如果这是真的,那么请完成剩下的过程。这样我就不会使用已经存在的值来更新数据库。

问题是我已经指定了选择框。其中一个选项是未分配的,其值为0.但是在下面的if语句中,零不被视为正确的值,因此无法进行检查。

( $newtaskassignee != $taskassignid ) { ... do something ... }

因此,当$newtaskassignee为0时,以下if语句应为true,并继续使用直接大括号内的内容。

但是在此声明中,零被忽略,并且没有通过检查。如何更改此值接受1到9之间的数字,包括0 。这会检查用户ID,因此它们可以是任何内容,因此我无法选择范围,因为它显然会为每个用户增加1。

2 个答案:

答案 0 :(得分:0)

( $newtaskassignee !== $taskassignid )

extra =将完全匹配并且不会将0视为false但是0。

答案 1 :(得分:0)

由于PHP没有强类型,因此有两组相等运算符。 一组专注于仅限值 == != 和 一个专注于值和类型 === !==

比较''和0时,==将返回true,因为对于PHP,这些值是相同的。 因此,您可以使用===比较运算符来确保两个操作数都是相同的值AND类型。

查看http://php.net/manual/en/language.operators.comparison.php,特别是“相等”和“相同”之间的区别。

希望这个帮助