ホームページ  >  記事  >  php教程  >  PHP の弱い型の安全性の問題に関する注意事項

PHP の弱い型の安全性の問題に関する注意事項

WBOY
WBOYオリジナル
2016-09-20 03:30:261095ブラウズ

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 に設定することが、厳密な比較方法になります。

上記は、日々の開発において注意すべきことです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。