Php 比较if语句中包含零的两个字符串变量

Php 比较if语句中包含零的两个字符串变量,php,if-statement,comparison,Php,If Statement,Comparison,这是一个有点棘手的解释,但我从来没有遇到过这一点,所以我不知道如何正确地处理它。我正在编写一个web应用程序,当表单提交时,它包含两个值,当前值和提交值 提交表单时,它会检查新值是否与当前值不同。如果这是真的,那么就完成剩下的过程。这就是为什么我不会用数据库中已经存在的值更新数据库 问题是我有一个指定的选择框。其中一个选项为“未分配”,其值为0。但是在下面的if语句中,零没有被视为正确的值,因此无法通过检查 ( $newtaskassignee != $taskassignid ) { ...

这是一个有点棘手的解释,但我从来没有遇到过这一点,所以我不知道如何正确地处理它。我正在编写一个web应用程序,当表单提交时,它包含两个值,当前值和提交值

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

问题是我有一个指定的选择框。其中一个选项为“未分配”,其值为0。但是在下面的if语句中,零没有被视为正确的值,因此无法通过检查

( $newtaskassignee != $taskassignid ) { ... do something ... }
因此,当
$newtaskassignee
为0时,下面的if语句应为true,并在直接的花括号内进行运算

但是在这个语句中,零被忽略,并且没有通过检查。如何更改此设置,使其接受从1到9(包括0)的数字。这将检查用户ID,以便它们可以是任何内容,因此我无法选择一个范围,因为它显然每个用户增加1

( $newtaskassignee !== $taskassignid )

extra=将进行精确匹配,不会将0视为false,而是将0视为false。

由于PHP没有强类型,因此有两组相等运算符。 只关注值的一组:== 和 关注值和类型的人:====

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

看看,尤其是“相等”和“相同”之间的区别


希望这有助于

var_dump($newtaskassignee)的输出是什么;var_dump($tasksassignid)?不要忘记PHP松散类型的处理。您是否尝试过
$newtaskassignee!==$taskassignid
?这就是我的想法,因此我提出了我的问题;)嗯,var_dump返回0(应该是零),添加第二个等号似乎没有什么不同。变量的类型是什么
var_dump
还返回