PHP 类型比较

php 类型比较

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

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

例如,"98" 是一个字符串而 98 是一个整数。false 是一个布尔值而 "false" 是一个字符串。

if(98 == "98") {
    echo '1、值相等';
}
 
echo php_eol; // 换行符
 
if(98 === "98") {
    echo '2、类型相等';
} else {
    echo '3、类型不相等';
}

以上范例输出结果为:

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

php中 比较 0、false、null

测试代码:

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)

 

相关文章