またやってしまった。(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) {
とでも書けばいいのですが、普通はどうするのだろう( ̄Д ̄;;
何度かこのミスを繰り返してしまうのでメモ。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- CSSで、ブラウザの文字のサイズにあわせて画像を拡大・縮小する。(2008.12.02)
- PHP strtotime関数の文字列確認用ツールを作りました(2008.11.30)
- PHPの数学関数の確認用ツールを作りました(2008.11.29)
- Flash ActionScriptでAjax?(2008.11.27)
- PHP date関数の書式確認用ツールを作りました。かなり使いやすいです。(2008.11.24)


コメント