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" < "banana"</span></span><span>
</span></span>
STRCMPはケースに敏感です。つまり、2つの文字列がコンテンツで同じであるが文字が異なる場合、それらは異なると思われます。
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>
STRCMPとSTRCASECMPのコアの違いは、それが文字に敏感な場合です。
STRCMPはケースに敏感であり、比較の一部として文字ケースを使用します。
STRCASECMPはケースを無視し、比較すると、同じ文字の場合が異なる場合、結果に影響しないと考えられています。
上部および小文字に従って厳密に比較する必要がある場合は、 STRCMPを使用できます。
たとえば、ファイルシステムでは、特にケースに敏感なオペレーティングシステム(Linuxなど)で、ファイル名のケースを区別する必要がある場合があります。
比較のために文字のケースを無視する必要がある場合は、 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を使用して、入力された文字が大文字または小文字であるかどうかに関係なく、データベースにユーザーがユーザーが入力したユーザー名を比較し、同じと見なされます。
STRCMPとSTRCASECMPはどちらも2つの文字列を比較するために使用される関数ですが、その主な違いは、それらが症例に敏感かどうかです。 STRCMPは文字の場合に厳密に比較されますが、 STRCASECMPは文字の場合を無視します。正しい比較結果を取得するための特定のニーズに従って適切な関数を選択します。機密データを処理する場合、通常、上部と小文字の違いが必要ですが、ユーザー入力などの無感覚なデータを処理する場合は、高度と小文字の比較を無視する方が便利な場合があります。