strcasecmp

関数の概要

strcasecmpは、PHPで文字列を比較する際に、大文字と小文字の違いを無視して比較を行うための関数です。例えば、「Apple」と「apple」を同じ文字列とみなして比較したい場合に便利です。大文字・小文字の区別なく文字列が等しいかどうかを判定したいときに使います。

パラメータの説明

  • string $str1 – 比較対象の最初の文字列を指定します。
  • string $str2 – 比較対象の2つ目の文字列を指定します。

戻り値

strcasecmpは整数を返します。
返り値の意味は以下のとおりです:

  • 0 : 2つの文字列が大文字小文字を無視した場合に等しい。
  • 負の整数 : $str1$str2より辞書順で前にある。
  • 正の整数 : $str1$str2より辞書順で後ろにある。

使用例

基本的な使い方

<?php
$result = strcasecmp("Hello", "hello");
var_dump($result); // int(0)
?>

この例では「Hello」と「hello」が大文字小文字を区別せず同じ文字列と判定されるため、0が返されます。

辞書順比較の例

<?php
echo strcasecmp("apple", "Banana"); // 出力は負の整数
echo "n";
echo strcasecmp("Orange", "orange"); // 出力は0
echo "n";
echo strcasecmp("Zebra", "ant"); // 出力は正の整数
?>

「apple」と「Banana」は辞書順で「apple」のほうが前なので負の値、「Orange」と「orange」は同じなので0、「Zebra」は「ant」より後なので正の値が返ります。

if文での使用例

<?php
if (strcasecmp($_POST['input'], 'admin') === 0) {
    echo "adminユーザーとしてログインしました。";
} else {
    echo "ユーザー名が違います。";
}
?>

ユーザー入力と「admin」を大文字小文字を無視して比較し、一致するとログイン処理を行う例です。

関連する関数

  • strcmp – 大文字小文字を区別して文字列比較を行う関数
  • strncasecmp – 文字列の先頭n文字を大文字小文字を無視して比較する関数
  • strcasecmpの派生関数として多言語環境に対応した mb_strcasecmp は標準PHPにはありませんが、一部ライブラリでサポートされます。

まとめ

strcasecmpはPHPで大文字小文字を無視して文字列比較を行う非常に便利な関数です。入力チェックや文字列の同一性判定に役立ち、実務でも重宝します。使い方もシンプルで、2つの文字列を引数に渡すだけで簡単に比較が可能です。文字列操作を行う際には覚えておくと良いでしょう。