PHPのin_arrayでtrueとfalseが正しく判定されないその日のハマリ、その日のうちに。PHPPHPのin_arrayでtrue,falseが正しく判定されないことがありました。結論から言うと暗黙の型変換がかかっているためです。true)のように第三引数にtrueを渡せば解決できます。下記はすべて1(=true)となります。1[0,1,2]に”hoge”なんて含まれてませんけどね。PHPエンジニアであれば下記がtrueになることは意識してるかと思います。!==を使用しますね。->しかし、↓もtrueになってしまいます。数値と比較するために”hoge”を数値に変換したときにnullになってしまうからでしょうか。1というわけでいつも通り===を使用すればOKです。!==になれば正しく有無を判定できるわけでin_arrayの第三引数にtrueを渡せばOKです。->ただし、これを使うと当然のことに以下はfalseになります。->というわけでこのような混乱を避けるためにPHPではfalseや空白と同じ値として0を使うのはアリだとしてもコード値などに0を使うのはできるだけ避けて1,2,3...のように1から始めるようにしましょう。記事は見つかりませんでした。コメントをキャンセルメールアドレスが公開されることはありません。その日のハマリ、その日のうちに。