文字列(String)の比較

ものすごく久しぶりにまともなブログ。
プログラミングについて、自分用メモも兼ねて書いておこうかと。
凄く基礎的な事なのに、今更しったよ…。

何気にPHPの勉強してる時にちゃんと説明してくれてる資料がなかったような…。俺が見落としてただけ?

まず、現在勉強中のJavaの場合。

PHPの場合。

いずれの言語の場合も、==演算子を使って文字列を比較すると変な挙動があるらしい。

Javaの場合は、equals()メソッドを使う事でOK。ちなみに変数の順番はどちらでも同じ。

PHPの場合は、==で比較するとなんと100と”100a”が同じとされてしまう。==演算子は数字の部分しか見ていないらしい。
===演算子を使う事で厳密に比較できるが、今度は厳密すぎて100と”100″が別の物として扱われる。これはstrcmp関数を使う事で回避できる。
ちなみに===演算子は1や”1″とboolean型のtrueを比較する時とか役にたつか名、

PHPは変数の型の定義をしなくて済むから楽だけど、こういう時に何かとややこしくなっちゃうね。まぁその代償って所かな。

そんな感じ。

コメントを残す