【PHP】 strcmp/strncmp/strcasecmp関数(文字列を比較する)の使い方

アイキャッチ画像比較 PHP
PHP
この記事は約3分で読めます。
Recommended Articles

【PHP】文字列を比較する関数の使い方

文字列関数違い戻り値
strcmp大文字と小文字の区別あり第1引数と第2引数を比較した結果、
等しい時、0
第1引数<第2引数の時、負の数
第1引数>第2引数の時、正の数
strcasecmp大文字と小文字の区別なし
strncmp比較する文字列の長さを指定可

strcmp関数の使い方(文字列を比較する)

php3~ で使用できます。

strcmp関数 : 書式
strcmp(文字列1,文字列2)

戻り値:文字列1が文字列2より小さい場合は負の数、大きい場合は正の数、等しい場合は0
 strcmp関数は文字列を比較します。

strcasecmp関数とは異なり大文字と小文字を区別して比較します。

strcmp関数 : 使用例
  • 大文字と小文字を区別して比較する
    echo strcmp("ABC", "abc"); →「-1」を出力
    echo strcmp("ABC", "ABC"); →「0」を出力
    echo strcmp("ABCDEF", "ABC"); →「3」を出力

strcasecmp関数の使い方(文字列を大文字と小文字を区別せず比較する)

php3.0.2~ で使用できます。

strcasecmp関数 : 書式
strcasecmp(文字列1,文字列2)

戻り値:文字列1が文字列2より小さい場合は負の数、大きい場合は正の数、等しい場合は0
 strcasecmp関数は文字列を大文字と小文字の区別をせずに比較します。
strcasecmp関数 : 使用例
  • 大文字と小文字を区別せず比較する
    $str = "ABC";
    echo strcasecmp($str, "abc"); →「0」を出力
  • 文字列が一致する場合は処理を実行する
    if ( strcasecmp($str, "A") == 0 ) { 

    <解説>
     文字列が一致するか否かで条件分岐させたい場合は、大文字と小文字を区別しないことに注意が必要です。また、2つの文字列が等しいときは「1」ではなく「0」が返されます。

strncmp関数の使い方(指定した長さの文字列を比較する)

php4~ で使用できます。

strncmp関数 : 書式
strncmp(文字列1,文字列2,比較する文字数)

戻り値:文字列1が文字列2より小さい場合は負の数、大きい場合は正の数、等しい場合は0
 strncmp関数は文字列の先頭からn文字を比較します。大文字と小文字は区別されます

strncmp("abc", "abcdef", 3) のような書式で、第3引数の文字数までが一致するか比較します。

strncmp関数 : 使用例
  • 指定した長さの文字列を比較する
    echo strncmp("20200202", "20200222", 4); →「0」を出力
    echo strncmp("abcde", "abc", 3); →「0」を出力
    echo strncmp("ABCDEF", "abc", 3); →「-1」を出力
    echo strncmp("A002", "A0011", 4); →「1」を出力
  • OSに応じて処理を分岐する
    if ( strncmp(PHP_OS, "win", 3)) {
      echo "Windowsです。"; →出力されます
    }

関連リンク

PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。
Recommended Articles