PHPで何気なく使用している等号・不等号ですが、文字列と数値を比較しようとすると予期せぬ動きをすることがあります。今回はおちいりがちな落とし穴を紹介します。 まずは簡単に以下の5つについての比較を行ってみましょう。以下の6つはすべてブール値としてみるとfalseとなる値です。 1: null 2: false 3: 0 (integer) 4: "" (空文字) 5: "0" (string) 6: array() これを「==」で比較してみると以下のような結果となります。 |1|2|3|4|5|6 -------------------- 1|○|○|○|○|×|○ 2|○|○|○|○|○|○ 3|○|○|○|○|○|× 4|○|○|○|○|×|× 5|×|○|○|×|○|× 6|○|○|×|×|×|○ ×となっている組は(1,5), (3,6), (4,5), (4,6), (5,6)