首頁  >  文章  >  後端開發  >  php strcmp()函數使用說明

php strcmp()函數使用說明

怪我咯
怪我咯原創
2017-07-06 10:48:382115瀏覽

Strcmp()函數對兩個字串進行二進位安全性的比較,並區分大小寫。

以區分大小寫的方式比較兩個字串
Strcmp()函數對兩個字串進行二進位安全性的比較,並區分大小寫。其形式為:
int strcmp ( string str1 , string str2 )
根據比較的結果將傳回如下的一個可能值。
•如果str1 和str2 相等則回傳0 。
•如果str1小於str2則回傳-1 。
•如果str1大於str2則回傳1 。
網站經常要求待註冊的使用者輸入並確認他選擇的密碼,減少因鍵入錯誤而產生不正確密碼的可能性。因為密碼通常是區分大小寫的,所以strcmp()對於比較這兩個密碼是非常合適的:

代碼如下:

<?php 
$pswd = "supersecret"; 
$pswd2 = "supersecret"; 
if (strcmp($pswd,$pswd2) != 0) 
echo "Your passwords do not match!"; 
else 
echo "Passwords match!"; 
?>

注意,對於strcmp ( ) ,字串必須完全匹配才認為是相等的。例如,Supersecret 不同於supersecret 。如果要以不區分大小寫的方式比較兩個字串,可以考慮下面介紹的strcasecmp ()。
關於這個函數,另一個容易混淆的地方是:兩個字串相等時要回傳0 。這與使用==運算子完成字串比較有所不同,如下:
if ( $str1 = = $str2)
兩種方式目標相同,都是比較兩個字串,但要記住,它們傳回的值卻不同。

實例程式碼:

#程式碼如下:

<?php 
echo strcmp("Hello world!","Hello world!"); 
//返回0 
?>

下面這個是比較好的strcmp的範例程式碼:
PHP strcmp根據IP位址控制存取的程式碼 

簡單的補充:
這裡的str1和str2比較實際上是str1和str2 的ASCII值的比較
例如:
strcmp("A","a"); 傳回值為-1
// a的ASCII值是97 A的ASCII值是65
由此範例還可以看出當用strcmp()比較字串時,是區分大小寫的

接著再看strcmp的深入理解:

strcmp("abc","abc"); 此時字串相等回傳值為0
我們改一下strcmp("aBc","abc");此時就不相等了回傳值為-1
由於strcmp是讓aBc和abc逐一比較的,兩個字符字串的第一個和第一個比較,第

二個和第二個比較…當每一次比較的ASCII值相等時,才能繼續比較下一對

字符。 所以,比較第二對 B和b,不相等,那麼比較停止,出現回傳值。

if ("abc">"aBC") 比較原理一樣

以上是php strcmp()函數使用說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn