さらに、2 つの値が一致するかどうかを比較する構造を制御するときは、== の代わりに === を使用するようにしてください (もちろん、これも特定のビジネス ロジックに応じてより適切です)。
お兄さん、その理由を説明しましょう
var_dump(in_array(0, array('s' ));
この文の結果は 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 を返します。
これはただのメモです。