現在の位置: ホーム> 最新記事一覧> STRCASECMPとSTRCMPの違いは何ですか? PHPでのこれら2つの機能の使用シナリオの分析

STRCASECMPとSTRCMPの違いは何ですか? PHPでのこれら2つの機能の使用シナリオの分析

gitbox 2025-09-04

1。STRCMP関数

STRCMP (String Compare)は、2つの文字列のサイズを比較するPHPの組み込み関数です。別の文字が見つかるまで、文字文字を文字で比較します。 2つの文字列が同じ場合、 strcmpは0を返します。最初の文字列が2番目より大きい場合、ゼロより大きい整数を返します。最初の文字列が秒未満の場合、ゼロ未満の整数を返します。

文法:

 <span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>

パラメーター:

  • $ str1 :比較する最初の文字列。

  • $ str2 :比較する2番目の文字列。

返品値:

  • 2つの文字列が等しい場合は、 0を返します。

  • $ STR1$ STR2未満の場合、負の数が返されます。

  • $ STR1$ STR2を超える場合、正の数が返されます。

例:

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"apple"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"banana"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);  </span><span><span class="hljs-comment">// 出力の負の数,なぜなら "apple" &lt; "banana"</span></span><span>
</span></span>

STRCMPはケースに敏感です。つまり、2つの文字列がコンテンツで同じであるが文字が異なる場合、それらは異なると思われます。


2。STRCASECMP関数

STRCMPと同様に、 STRCASECMP (String Compare、Case-Dinsensitive)は、2つの文字列のサイズを比較するためにも使用されます。違いは、 STRCASECMPが文字列の比較を実行するときにケースに敏感ではないことです。これにより、特に文字ケースを無視する場合、比較すると柔軟になります。

文法:

 <span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>

パラメーター:

  • $ str1 :比較する最初の文字列。

  • $ str2 :比較する2番目の文字列。

返品値:

  • 2つの文字列が等しい場合(ケースが無視されます)、 0を返します。

  • $ STR1$ STR2未満の場合、負の数が返されます。

  • $ STR1$ STR2を超える場合、正の数が返されます。

例:

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"apple"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"APPLE"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);  </span><span><span class="hljs-comment">// 出力0,なぜなら "apple" そして "APPLE" ケース非感受性の場合等しい</span></span><span>
</span></span>

3。主な違い

STRCMPSTRCASECMPのコアの違いは、それが文字に敏感な場合です。

  • STRCMPはケースに敏感であり、比較の一部として文字ケースを使用します。

  • STRCASECMPはケースを無視し、比較すると、同じ文字の場合が異なる場合、結果に影響しないと考えられています。

4。使用シナリオ分析

STRCMPの使用:

  • 上部および小文字に従って厳密に比較する必要がある場合は、 STRCMPを使用できます。

  • たとえば、ファイルシステムでは、特にケースに敏感なオペレーティングシステム(Linuxなど)で、ファイル名のケースを区別する必要がある場合があります。

STRCASECMPの使用:

  • 比較のために文字のケースを無視する必要がある場合は、 STRCASECMPを使用できます。

  • たとえば、ユーザーの入力を処理する場合、ユーザーが入力したコンテンツは場合によって異なる場合がありますが、比較時に文字ケースの影響を受けたくない場合があります。

例:

 <span><span><span class="hljs-variable">$usernameInput</span></span><span> = </span><span><span class="hljs-string">"Admin"</span></span><span>;
</span><span><span class="hljs-variable">$usernameDatabase</span></span><span> = </span><span><span class="hljs-string">"admin"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strcasecmp</span></span><span>(</span><span><span class="hljs-variable">$usernameInput</span></span><span>, </span><span><span class="hljs-variable">$usernameDatabase</span></span><span>) === </span><span><span class="hljs-number">0</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ユーザー名マッチング!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ユーザー名の不一致!"</span></span><span>;
}
</span></span>

この例では、 STRCASECMPを使用して、入力された文字が大文字または小文字であるかどうかに関係なく、データベースにユーザーがユーザーが入力したユーザー名を比較し、同じと見なされます。


5。概要

STRCMPSTRCASECMPはどちらも2つの文字列を比較するために使用される関数ですが、その主な違いは、それらが症例に敏感かどうかです。 STRCMPは文字の場合に厳密に比較されますが、 STRCASECMPは文字の場合を無視します。正しい比較結果を取得するための特定のニーズに従って適切な関数を選択します。機密データを処理する場合、通常、上部と小文字の違いが必要ですが、ユーザー入力などの無感覚なデータを処理する場合は、高度と小文字の比較を無視する方が便利な場合があります。