strcmp:二進位安全、區分大小寫
int strcmp(string $str1, string $str2)
- 按位元組逐一比較 ASCII 碼,區分大小寫。
- 回傳:
0 相等、<0 str1 較小、>0 str1 較大。
- 與
strncmp 差異:strcmp 比較整個字串,strncmp 可指定長度。
strcasecmp:不區分大小寫版本
int strcasecmp(string $str1, string $str2)
- 比較前將雙方轉為小寫(依當前 locale),再按位元組比較。
- 回傳值規則同
strcmp。
- 對應
strncasecmp 可指定長度。
實測範例
$a = ''; $b = '';
$c = 'www.jb51.net'; $d = 'WWW.JB51.NET';
echo strcmp($a, $b); // 0 相等
echo strcmp($c, $d); // 1 'w'(119) > 'W'(87)
echo strcasecmp($c, $d); // 0 不分大小寫視為相等
回傳值語意速記
$cmp = strcmp($a, $b);
if ($cmp === 0) echo "相等";
elseif ($cmp < 0) echo "$a 排在 $b 前面";
else echo "$a 排在 $b 後面";
效能與替代方案