関数の概要
PHPの strcmp 関数は、2つの文字列をバイナリ的に比較し、その大小関係を判定するための関数です。文字列の内容が同じかどうか、またはどちらが辞書順で前か後ろかを調べる際に便利です。大文字と小文字は区別されるため、厳密な文字列比較に使用されます。
パラメータの説明
str1:比較対象の最初の文字列。str2:比較対象の2番目の文字列。
戻り値
戻り値は整数で返されます。
値の意味は以下の通りです。
- 0 :
str1とstr2が等しい。 - 0より小さい値 :
str1がstr2より辞書順で前。 - 0より大きい値 :
str1がstr2より辞書順で後。
使用例
基本的な使い方
<?php
$result = strcmp("apple", "banana");
var_dump($result);
?>
この例では「apple」が「banana」より辞書順で前なので、負の値が出力されます。
同じ文字列を比較する例
<?php
$result = strcmp("hello", "hello");
var_dump($result);
?>
文字列が全く同じため、戻り値は 0 となります。
大文字と小文字の違いを確認する例
<?php
$result = strcmp("Apple", "apple");
var_dump($result);
?>
大文字と小文字は区別されるため、「Apple」と「apple」は異なり、負の値または正の値が返ります(大文字の方が小さい場合が多い)。
条件分岐に使う例
<?php
$str1 = "foo";
$str2 = "bar";
if (strcmp($str1, $str2) === 0) {
echo "文字列は同じです。";
} elseif (strcmp($str1, $str2) < 0) {
echo "$str1 は $str2 より前です。";
} else {
echo "$str1 は $str2 より後です。";
}
?>
文字列の比較結果によって処理を分けることができます。完全一致か否かだけでなく、辞書順の前後関係も判断可能です。
関連する関数
strcasecmp– 大文字・小文字を区別せずに比較する関数。strncmp– 先頭から指定した文字数だけ比較する関数。strncmpi– 大文字・小文字を区別せずに先頭数文字を比較する関数(環境による)。
まとめ
strcmp は、PHPで2つの文字列の大小関係や一致を正確に判定したい場合に使える基本的な文字列比較関数です。大文字・小文字を区別し、バイナリ的に比較するので、正確な文字列の一致チェックや辞書順の判定に最適です。実務においては、入力値の検証やソート処理、条件分岐など幅広い用途で活用できます。
