PHPの ===
演算子は大文字小文字を区別するようですね。では、strcmp()
を使う理由はあるのでしょうか?のようにしても安全でしょうか?
if ( $password === $password2 ) { ... }
を使うのは危険かもしれません。
2つのデータ型が異なる場合、変数を別のデータ型にキャストしてしまうことに注意してください。
例を挙げます。
echo (1 == '1') ? 'true' : 'false';
echo (1 == true) ? 'true' : 'false';
ご覧のように、この2つは異なるタイプのものですが、結果は true
となり、コードが期待するものとは異なるかもしれません。
しかし、===
を使用することをお勧めします。テストによると、strcmp()
や大文字小文字を区別しないstrcasecmp()
よりも少しだけ速くなります。
素早くググると、次のような速度比較が出てきます。http://snipplr.com/view/758/