PHPで文字列を比較する方法:strcmp()

PHPで文字列を比較するときはstrcmp()を使います。

文字列を比較する

strcmp()の記述方法は以下のとおりです。

strcmp()では引数に渡した「文字列1」と「文字列2」が比較されます。

「文字列1」が「文字列2」 よりも小さければ負の整数を、「文字列1」が 「文字列2」よりも大きければ正の整数を、 等しければ0を返します。

また、大文字と小文字は区別されます。もし区別したくない場合は、strcasecmp()を使用してください。

以下は文字列「1st」と「1st」という文字列を比較した例です。

上のプログラムを実行すると「同じ文字列です」と表示されます。

次の例は文字列「1st」と「2nd」という文字列を比較したものです。

上のプログラムを実行すると「異なる同じ文字列です」と表示されます。

「==」を使って文字列を比較する

他のプログラミング言語では「==」を使って文字列を比較することがあります。

もしPHPで「==」を使って文字列を比較してみるとどうなるでしょうか。

引用:http://www.php.net/manual/ja/language.operators.comparison.php

上の例ではすべて異なるもの同士を比較しているのにも関わらず、すべて結果は「true」になります。 これはPHPでは「==」で比較する場合、文字列に数値形式のものが含まれていると、文字列が数値に変換され、数値として比較されるからです。

以上のことから、特別な理由がない限り文字列を比較するときはstrcmp()を使った方がいいでしょう。