//test.php echo '0 == false: '; var_dump(0 == false); echo '0 === false: '; var_dump(0 === false); echo "\n"; echo '0 == null: '; var_dump(0 == null); echo '0 === null: '; var_dump(0 === null); echo "\n"; echo 'false == null: '; var_dump(false == null); echo 'false === null: '; var_dump(false === null); echo "\n"; echo '"0" == false: '; var_dump("0" == false); echo '"0" === false: '; var_dump("0" === false); echo "\n"; echo '"0" == null: '; var_dump("0" == null); echo '"0" === null: '; var_dump("0" === null); echo "\n"; echo '"" == false: '; var_dump("" == false); echo '"" === false: '; var_dump("" === false); echo "\n"; echo '"" == null: '; var_dump("" == null); echo '"" == null: '; var_dump("" === null);
→ php test.php 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)
除非你真的知道你在用==
比較什麼,通常狀況用===
更安全。php
好比像array_search
,沒找到返回false
,找到了返回key
,而key
是可能爲0
的。安全