|
Strcmp()函數(shù)對兩個(gè)字符串進(jìn)行二進(jìn)制安全的比較,并區(qū)分大小寫。其形式為:
int strcmp ( string str1 , string str2 )
根據(jù)比較的結(jié)果將返回如下的一個(gè)可能值。
•如果str1 和str2 相等則返回0 。
•如果str1小于str2則返回-1 。
•如果str1大于str2則返回1 。
網(wǎng)站經(jīng)常要求待注冊的用戶輸入并確認(rèn)他選擇的密碼,減少由于鍵入錯(cuò)誤而生成不正確密碼的可能性。因?yàn)槊艽a通常是區(qū)分大小寫的,所以strcmp()對于比較這兩個(gè)密碼是非常合適的:
復(fù)制代碼 代碼如下:
<?php
$pswd = "supersecret";
$pswd2 = "supersecret";
if (strcmp($pswd,$pswd2) != 0)
echo "Your passwords do not match!";
else
echo "Passwords match!";
?>
注意,對于strcmp ( ) ,字符串必須完全匹配才認(rèn)為是相等的。例如,Supersecret 不同于supersecret 。如果要以不區(qū)分大小寫的方式比較兩個(gè)字符串,可以考慮下面介紹的strcasecmp ()。
關(guān)于這個(gè)函數(shù),另一個(gè)容易混淆的地方是:兩個(gè)字符串相等時(shí)要返回0 。這與使用==操作符完成字符串比較有所不同,如下:
if ( $str1 = = $str2)
兩種方式目標(biāo)相同,都是比較兩個(gè)字符串,但要記住,它們返回的值卻不同。
實(shí)例代碼:
復(fù)制代碼 代碼如下:
<?php
echo strcmp("Hello world!","Hello world!");
//返回0
?>
下面這個(gè)是比較好的strcmp的例子代碼:
php strcmp根據(jù)IP地址控制訪問的代碼
簡單的補(bǔ)充:
這里的str1和str2比較 實(shí)際上是str1和str2 的ASCII值的比較
比如:
strcmp("A","a"); 返回值為 -1
// a的ASCII值是97 A的ASCII值是65
由此例子還可以看出 當(dāng)用strcmp()比較字符串時(shí),是區(qū)分大小寫的
接著再看strcmp的深入理解:
strcmp("abc","abc"); 此時(shí) 字符串相等 返回值為 0
我們改一下 strcmp("aBc","abc");此時(shí)就不相等了 返回值為-1
由于strcmp是讓aBc和abc逐一比較的,兩個(gè)字符串的第一個(gè)和第一個(gè)比較,第
二個(gè)和第二個(gè)比較……當(dāng)每一次比較的ASCII值相等時(shí),才能繼續(xù)比較下一對
字符。 所以,比較第二對 B和b,不相等,那么比較停止,出現(xiàn)返回值。
if ("abc">"aBC") 比較原理一樣
php技術(shù):php strcmp使用說明,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。