またやってしまった。(phpでの比較演算時のミス)phpで、
if (0 == "") {
print "1";
} else {
print "2";
}
の結果は、1になるのですね。
phpで、
if (0 == "") {
print "1";
} else {
print "2";
}
の結果は、1になるのですね。
たしかに、0も空文字もFalseなのでそうなのですが、
なれないので、違和感を感じます。 (゚Д゚)ハァ?
たとえば、
strposでは文字列を検索したときに、見つからなかった場合は、空文字、1桁目に見つかった場合は、0を返します。
で、
$ret = strpos("abcd","a");
if ($ret == "") {
見つからなかった場合の処理
} else {
見つかった場合の処理
}
なんて書くと、aは検索される文字列内にあるにもかかわらず、見つからなかった場合の処理が実行されます。
解決策は、
if ($ret == "") {
ではなく、
if (strlen($ret) == 0) {
とでも書けばいいのですが、普通はどうするのだろう( ̄Д ̄;;
何度かこのミスを繰り返してしまうのでメモ。
コメント(0)|コメントを書く
カテゴリー一覧
最近のコメント
新着記事をメールで通知
このブログを友達に教える