現在の位置: ホーム> 最新記事一覧> 返品値はどういう意味ですか? 1つの記事で0、正、および負の値の意味を理解する

返品値はどういう意味ですか? 1つの記事で0、正、および負の値の意味を理解する

gitbox 2025-08-13

PHPでは、 Strcmp()は非常に一般的に使用される文字列比較関数です。 2つの文字列のサイズを比較し、比較結果に従って異なる値を返すために使用されます。 STRCMP()の返品値の意味を理解することは、開発における文字列操作を処理するために非常に重要です。

strcmp()関数の基本的な構文

strcmp()関数の構文は次のとおりです。

 <span><span><span class="hljs-keyword">int</span></span><span> </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>

この関数は、2つのパラメーターSTR1STR2を取得し、2つの文字列の比較結果を表して整数値を返します。

返品値の意味

STRCMP()によって返される整数値には、通常、負、ゼロ、およびポジティブの3つの結果があります。

1。0に戻ります

strcmp()が0を返すと、2つの文字列が正確に等しい、つまり、コンテンツ、ケース、長さなどが同じであることを意味します。要するに、2つの文字列は文字通り同じです。

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;

</span><span><span class="hljs-keyword">if</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-number">0</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"2つの文字列は等しい"</span></span><span>;
}
</span></span>

2。負の値を返します

strcmp()が負の値を返すと、 str1str2未満であることを意味します。この比較は、文字のASCII値に基づいています。言い換えれば、string str1が辞書の順序でstr2の前にランク付けされている場合、返品値は負の数になります。

たとえば、 「Apple」を「Banana」と比較すると、文字AのASCII値は文字bよりも小さいため、 Strcmp()は負の値を返します。

 <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">if</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>) &lt; </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">"'apple' 未満 'banana'"</span></span><span>;
}
</span></span>

3。正の値に戻ります

strcmp()が正の値を返すと、 str1str2よりも大きいことを意味します。つまり、 STR1は辞書順序でSTR2の後にランク付けされます。

たとえば、 「バナナ」を「Apple」と比較すると、文字BのASCII値は文字aよりも大きいため、 Strcmp()は正の値を返します。

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"banana"</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">if</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>) &gt; </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">"'banana' より大きい 'apple'"</span></span><span>;
}
</span></span>

文字列比較は大文字と小文字に敏感です

strcmp()によって行われた比較は、症例に敏感であることに注意する必要があります。ケース感度が必要ない場合は、 strcoll()strcasecmp()などの関数を使用できます。

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;

</span><span><span class="hljs-keyword">if</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-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>

この例では、 「H」のASCII値が「H」とは異なるため、STRCMP()はゼロ以外の値を返します。

要約します

strcmp()は、負、ゼロ、または正の値を返すことにより、2つの文字列間のサイズの関係を理解するのに役立つ強力な文字列比較関数です。

  • 戻り0 :2つの文字列は等しい。

  • 負の値を返すSTR1STR2未満です。

  • 正の値を返すSTR1STR2より大きくなります。

この関数の返品値を理解することは、文字列操作の最適化とデバッグに非常に役立ちます。