Strcmp() 関数は、バイナリセーフで大文字と小文字を区別した 2 つの 文字列の比較を実行します。
大文字と小文字を区別して 2 つの文字列を比較する
Strcmp() 関数は、2 つの文字列のバイナリセーフな比較を実行し、大文字と小文字を区別します。その形式は次のとおりです:
int strcmp ( string str1 , string str2 )
比較結果に基づいて、次の可能な値のいずれかが返されます。
•str1とstr2が等しい場合は0を返します。
•str1がstr2より小さい場合は、-1を返します。
•str1がstr2より大きい場合は1を返します。
Web サイトでは、ユーザーが選択したパスワードを入力して確認するための登録を要求することが多く、入力ミスによって間違ったパスワードが生成される可能性が低くなります。通常、パスワードは大文字と小文字が区別されるため、 strcmp() はこれら 2 つのパスワードを比較するのに非常に適しています:
コードは次のとおりです:
<?php $pswd = "supersecret"; $pswd2 = "supersecret"; if (strcmp($pswd,$pswd2) != 0) echo "Your passwords do not match!"; else echo "Passwords match!"; ?>
strcmp() では、等しいとみなされるためには文字列が正確に一致する必要があることに注意してください。たとえば、Supersecret は supersecret とは異なります。大文字と小文字を区別せずに 2 つの文字列を比較したい場合は、以下で紹介する strcasecmp() を検討してください。
この関数のもう 1 つのわかりにくい点は、2 つの文字列が等しい場合に 0 を返すことです。これは、次のように、==演算子を使用して文字列比較を完了するのとは異なります:
if ( $str1 == $str2)
どちらのメソッドも目的は同じで、2 つの文字列を比較することですが、覚えておいてください。返される値は異なります。
サンプルコード:
コードは次のとおりです:
<?php echo strcmp("Hello world!","Hello world!"); //返回0 ?>
以下は、より優れた strcmp サンプルコードです:
IP アドレスに基づいてアクセスを制御する PHP strcmp コード
簡単な追加:
ここstr1 と str2 の比較は、実際には str1 と str2 の ASCII 値の比較です
例:
strcmp("A","a"); 戻り値は -1 です
//a の ASCII 値は 97 です。 A の ASCII 値は 65 です
この例から、strcmp() を使用して文字列を比較する場合、大文字と小文字が区別されることもわかります
次に、strcmp について詳しく見てみましょう:
strcmp("abc","abc"); このとき、等価の戻り値は 0 です。 今度は strcmp("aBc","abc"); を変更しましょう。
strcmpはaBcとabcを1つずつ比較するので、2つの文字列のうち最初のものは最初のものと比較され、2番目のものは2番目のものと比較されます...それぞれの比較のASCII値は等しい場合、次の
文字のペアを比較できます。 したがって、2 番目のペア B と b を比較し、それらが等しくない場合、比較は停止し、戻り値が表示されます。
if ("abc">"aBC") 比較原理は同じです
以上がphp strcmp() 関数の使用手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。