首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP strcmp 與 strcasecmp:字符串比較函數詳解與大小寫敏感區別

     編輯:PHP 相關知識

函數原型

  • strcmp(string $str1, string $str2):二進制安全比較,**區分大小寫**。
  • strcasecmp(string $str1, string $str2):二進制安全比較,**不區分大小寫**。

返回值規則

比較結果返回值
$str1 等於 $str20
$str1 小於 $str2< 0 (負數)
$str1 大於 $str2> 0 (正數)

「小於/大於」基於 ASCII 碼值逐字符比較。

代碼示例

<?php
$str1 = "幫客之家";
$str2 = "幫客之家";
$str3 = "www.jb51.net";
$str4 = "WWW.JB51.NET";

echo strcmp($str1, $str2) . "<br/>"; // 0 (相等)
echo strcmp($str3, $str4) . "<br/>"; // 1 (區分大小寫,'w' > 'W')
echo strcasecmp($str3, $str4) . "<br/>"; // 0 (不區分大小寫,視為相等)
?>

運行結果

0
1
0

相關函數家族

函數大小寫長度限制說明
strcmp敏感否標準比較
strcasecmp不敏感否忽略大小寫
strncmp敏感是比較前 n 個字符
strncasecmp不敏感是忽略大小寫比較前 n 個
strnatcmp敏感否自然排序算法 (2 < 10)
strnatcasecmp不敏感否自然排序忽略大小寫

應用場景

  • 用戶認證:密碼驗證用 strcmp(或更安全的 hash_equals 防時序攻擊)。
  • 排序比較:usort($arr, 'strcmp') 或 strcasecmp 忽略大小寫排序。
  • 配置匹配:環境變量、常量名比較常用 strcasecmp。
  • 自然排序:文件名、版本號排序必用 strnatcmp(見下文)。

注意事項

  1. 返回值**僅表示大小關係**,具體數值無意義,不可依賴具體正負數大小。
  2. 多字節字符(中文)比較基於字節序,結果符合 Unicode 碼點順序,通常符合預期。
  3. strcmp 是二進制安全的,可比較包含 \0 的字符串。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved