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