PHP 类型比较

虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。

例如,\”42\” 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 \”FALSE\” 是一个字符串。

实例

<?php
if(42 == "42") {
    echo \'1、值相等\';
}
 
echo PHP_EOL; // 换行符
 
if(42 === "42") {
    echo \'2、类型相等\';
} else {
    echo \'3、类型不相等\';
}
?>

以上实例输出结果为:

1、值相等
3、类型不相等

PHP中 比较 0、false、null

测试代码:

实例

<?php
echo \'0 == false: \';
var_dump(0 == false);
echo \'0 === false: \';
var_dump(0 === false);
echo PHP_EOL;
echo \'0 == null: \';
var_dump(0 == null);
echo \'0 === null: \';
var_dump(0 === null);
echo PHP_EOL;
echo \'false == null: \';
var_dump(false == null);
echo \'false === null: \';
var_dump(false === null);
echo PHP_EOL;
echo \'"0" == false: \';
var_dump("0" == false);
echo \'"0" === false: \';
var_dump("0" === false);
echo PHP_EOL;
echo \'"0" == null: \';
var_dump("0" == null);
echo \'"0" === null: \';
var_dump("0" === null);
echo PHP_EOL;
echo \'"" == false: \';
var_dump("" == false);
echo \'"" === false: \';
var_dump("" === false);
echo PHP_EOL;
echo \'"" == null: \';
var_dump("" == null);
echo \'"" === null: \';
var_dump("" === null);

以上实例输出结果为:

0 == false: bool(true)
0 === false: bool(false)

0 == null: bool(true)
0 === null: bool(false)

false == null: bool(true)
false === null: bool(false)

\"0\" == false: bool(true)
\"0\" === false: bool(false)

\"0\" == null: bool(false)
\"0\" === null: bool(false)

\"\" == false: bool(true)
\"\" === false: bool(false)

\"\" == null: bool(true)
\"\" === null: bool(false)