結果: bool(true). in_array は 0 と 's' を比較するため、0 は数値型であり、's' は文字列型です。PHP マニュアルの「比較演算子」の章の指示に従って、数値と文字列が比較されます。 比較する場合、まず文字列型を数値に変換してから比較演算を実行します。 's' を数値に変換した結果は 0 で、0 == 0 の結果は true なので、in_array(0, array('s', 'ss')) の結果も true になりますin_array の 3 番目のパラメータ strict が true に設定されている場合、比較により値と型が等しいかどうかが判断されます。 等しい場合は true が返され、そうでない場合は false が返されます。 私が勉強中に遭遇した問題のいくつかを紹介します。また、同じような問題に遭遇した友人にも共有したいと思います。 |