Sab*_*eti 7 php string comparison integer
我有一个整数/字符串变量。如果 mysqli 语句中有错误,它会变成String,如果没有错误,它会变成受影响的行数(Integer)。
但在 PHP 中,如果我们有这样的东西:
$i = 0;
if ( $i < 0 || $i == null ) {
var_dump($i);
}
Run Code Online (Sandbox Code Playgroud)
我们得到这样的结果:
int 0
Run Code Online (Sandbox Code Playgroud)
首先,我想知道为什么会出现这种情况?(我的意思是,如果var_dump是int 0,为什么if语句不起作用?)
其次,我想要用于比较的解决方案。
你没有进行严格的比较。使用===而不是==.
==将转换类型然后比较
请改用以下其中一项。is_null在我看来是最干净的。
if ( $i < 0 || $i === null ) {..}
Run Code Online (Sandbox Code Playgroud)
或者
if ( $i < 0 || is_null($i)) {..}
Run Code Online (Sandbox Code Playgroud)