1. 型変換の問題
intval 変換された値が文字列の場合、エラーは返されませんが、0 が返されます。変換された値が配列の場合、2 つの状況があり、変換された値が空の配列の場合は 0 を返し、そうでない場合は 0 を返します。 1を返します
注: PHP は、32 ビットのメモリを使用して整数を格納します。符号がある場合、それは 4294967296 の数値を表します。
2. 組み込み関数の緩みの問題
上記の結果は switch case 3 に入ります。なぜこのようなことが起こるのでしょうか? switch が数値型の case 判定である場合、switch はパラメータを int クラスに変換します。 したがって、上記を実行すると、$i が最初に型変換処理されます。変換結果は 3 になります。 。 。
上記の実行結果はなぜこのようになるのでしょうか? マニュアルを調べたところ、公式の声明によると、in_array はデフォルトで値が等しいかどうかのみを比較し、値の型が等しいかどうかは比較しません。結果として、 in_array 関数の 3 番目のパラメータを True に設定することが、厳密な比較方法になります。
上記は、日々の開発において注意すべきことです。