PHP:将整数/字符串变量与 Null 进行比较

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_dumpint 0,为什么if语句不起作用?)

其次,我想要用于比较的解决方案。

Ani*_*han 7

你没有进行严格的比较。使用===而不是==.

==将转换类型然后比较

请改用以下其中一项。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)