今日は建国記念日でお休み。ただ、何もする気がしなくて一日ぼんやりしていました。
さて、phpを仕事で使うようになり、大分使い慣れてきたのですが、ありがちな罠にハマったらしいので、今後気をつけるためメモしておきます。
phpは文字列比較で(数値が含まれていると)数値に直して比較する
例えば、以下のような場合、$val1と$val2は両方とも数値に変換されて1となり、同じと判断されてしまいます。
$val1 = '00001'; $val2 = '001'; if ($val == $val2) { echo "同じ"; }
ややこしいことに、数値がなければ文字列として比較するんですよね。
対策
上のWebページにもありますが、strcmp()を使うか、型変換が起きない===を使って比較する必要があります。
知っていれば何てことはないのですが、見事に引っかかってしまいました。