ホームページ  >  記事  >  バックエンド開発  >  PHPの文字列比較関数の詳細説明

PHPの文字列比較関数の詳細説明

伊谢尔伦
伊谢尔伦オリジナル
2017-04-22 18:32:5213512ブラウズ

PHP では、文字列を比較する方法が数多くあります。1 つ目は、strcmp() 関数と strcasecmp() 関数を使用してバイト単位で比較する方法です。2 つ目は、For の自然な並べ替えに従って比較する方法です。 3 番目の方法は、strncmp() 関数を使用して、ソース文字列の位置から開始する比較を指定することです。 以下では、これらの方法について詳しく説明します。

1. バイトに基づいて文字列を比較する

バイトに基づいて文字列を比較するには、strcmp() 関数と strcasecmp() 関数を使用する 2 つの方法があります。 これら 2 つの関数の違いは、strcmp() 関数は文字の大文字と小文字を区別するのに対し、strcasecmp() 関数は文字の大文字と小文字を区別しないことです。これら 2 つの関数の実装方法は基本的に同じであるため、ここでは strcmp() 関数のみを紹介します。

strcmp() 関数は、2 つの文字列をバイト単位で比較するために使用されます。

構文形式は次のとおりです:

 strcmp(string1, string2)

パラメータ string1 とパラメータ string2 は、比較する 2 つの文字列を指定します。それらが等しい場合、関数の戻り値は 0 になります。パラメータ string1 がパラメータ string2 より大きい場合、関数の戻り値は 0 より大きく、パラメータ string1 がパラメータ string2 より小さい場合、関数の戻り値は より小さくなります。 0.

注: この関数では大文字と小文字が区別されます。

srtcmp() 関数と strcasecmp() 関数を使用して、2 つの文字列をそれぞれバイト単位で比較します。 コード例は次のとおりです。

<?php
 $str1 = "PHP学习手册!";               // 定义字符串常量
 $str2 = "PHP学习手册!";               // 定义字符串常量
 $str3 = "phpcn";                      // 定义字符串常量
 $str4 = "PHPCN";                      // 定义字符串常量
 echo strcmp($str1,$str2);             // 这两个字符串相等
 echo strcmp($str3,$str4);             // 注意该函数区分大小写
 echo strcasecmp($str3,$str4);          //该函数不区分大小写
?>

出力結果は次のとおりです。

0 1 0

説明: PHP では、文字列を比較します。とても広いです。たとえば、ユーザーログインシステムに入力されたユーザー名とパスワードが正しいかどうかを比較するには、strcmp() 関数を使用します。ユーザーとパスワードを検証するときにこの関数を使用しない場合は、入力されたユーザー名とパスワードでログインできます。大文字か小文字かに関係なく、それらが正しい限り。 srtcmp() 関数を使用すると、この状況は回避され、ログインする前に大文字と小文字がすべて一致する必要があるため、Web サイトのセキュリティが向上します。

2. 自然ソート法による文字列の比較

PHPでは、自然ソート法による文字列の比較は strnatcmp() 関数を使用して実現されます。自己認識ソート方法は、文字列の数値部分を比較し、文字列内の数値をサイズに応じて比較します。構文は次の形式になります。

strnatcmp(string1, string2)

パラメーター string1 とパラメーター string2 が等しい場合、関数の戻り値は 0 になります。パラメーター string1 がパラメーター string2 より大きい場合、関数の戻り値は 0 より大きくなります。パラメータ string2 より小さい場合、関数は 0 未満の値を返します。

ヒント: この関数では大文字と小文字が区別されます。

注: 自然アルゴリズムでは、2 は 10 より小さくなりますが、コンピューターシーケンスでは、「10」の最初の数値が「1」であり、「2」より小さいため、10 は 2 より小さくなります。

strnatcmp() 関数を使用して自然な並べ替え方法に従って文字列を比較するコード例は次のとおりです:

<?php
 $str1 = "inter2.jpg";                  // 定义字符串常量
 $str2 = "inter10.jpg";                 // 定义字符串常量
 $str3 = "phpcn1";                      // 定义字符串常量
 $str4 = "PHPCN2";                      // 定义字符串常量
 echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1
 echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1
?>

出力結果は次のとおりです:

-1  1

注: 自己認識された並べ替え方法に従って比較するには、別の AND も使用できます。 strnatcmp() 関数には同じ機能がありますが、サイズに依存しない strnatcasecmp() 関数です。

3. ソース文字列の位置から比較を開始する関数を指定します。

strncmp()関数は、文字列の最初のn文字を比較するために使用されます。

その構文は次の形式です:

strncmp(string1, string2, length)

パラメータ string1 とパラメータ string2 が等しい場合、関数の戻り値は 0 になります。パラメータ string1 がパラメータ string2 より大きい場合、関数の戻り値は 0 より大きくなります。 string1 がパラメータ string2 より小さい場合、関数は戻り値を返します。戻り値は 0 未満です。この関数では大文字と小文字が区別されます。

そのパラメータの説明は次のとおりです:

パラメータ
string1を言います 比較に参加する最初の文字列オブジェクトを指定します
string2 比較に参加するように指定します2 番目の文字列オブジェクト
length は必須パラメータであり、各文字列の比較に参加する文字列の数を指定します

文字列の最初の 2 文字が正しいかどうかを比較するには、strncmp() 関数を使用します。ソースとの整合性 文字列は等しく、コード例は次のとおりです:

<?php
 $str1 = "I like this";                  // 定义字符串常量
 $str2 = "i study php";                  // 定义字符串常量
 echo strncmp($str1,$str2,2);            // 比较前两个字符
?>

出力結果は次のとおりです:

 -1

注: 上記のコードからわかるように、変数 $str2 の文字列の最初の文字はは小文字であり、変数 $str1 とは異なります。 の文字列は一致しないため、2 つの文字列を比較した後の関数の戻り値は -1 になります。

以上がPHPの文字列比較関数の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。