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)