PHP 类型比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
- 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
- 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
例如,"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。
实例
if(42 == "42") {
echo &qpos;1、值相等&qpos;;
}
echo PHP_EOL; // 换行符
if(42 === "42") {
echo &qpos;2、类型相等&qpos;;
} else {
echo &qpos;3、类型不相等&qpos;;
}
以上实例输出结果为:
1、值相等 3、类型不相等
PHP中 比较 0、false、null
测试代码:
实例
echo &qpos;0 == false: &qpos;;
var_dump(0 == false);
echo &qpos;0 === false: &qpos;;
var_dump(0 === false);
echo PHP_EOL;
echo &qpos;0 == null: &qpos;;
var_dump(0 == null);
echo &qpos;0 === null: &qpos;;
var_dump(0 === null);
echo PHP_EOL;
echo &qpos;false == null: &qpos;;
var_dump(false == null);
echo &qpos;false === null: &qpos;;
var_dump(false === null);
echo PHP_EOL;
echo &qpos;"0" == false: &qpos;;
var_dump("0" == false);
echo &qpos;"0" === false: &qpos;;
var_dump("0" === false);
echo PHP_EOL;
echo &qpos;"0" == null: &qpos;;
var_dump("0" == null);
echo &qpos;"0" === null: &qpos;;
var_dump("0" === null);
echo PHP_EOL;
echo &qpos;"" == false: &qpos;;
var_dump("" == false);
echo &qpos;"" === false: &qpos;;
var_dump("" === false);
echo PHP_EOL;
echo &qpos;"" == null: &qpos;;
var_dump("" == null);
echo &qpos;"" === null: &qpos;;
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)