PHP 型別比較

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)