php strcmp使用說明
更新時(shí)間:2010年04月22日 20:12:09 作者:
Strcmp()函數(shù)對兩個(gè)字符串進(jìn)行二進(jìn)制安全的比較,并區(qū)分大小寫。
以區(qū)分大小寫的方式比較兩個(gè)字符串
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è)密碼是非常合適的:
<?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í)例代碼:
<?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") 比較原理一樣
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中strnatcmp()函數(shù)“自然排序算法”進(jìn)行字符串比較用法分析(對比strcmp函數(shù))
- PHP中strcmp()和strcasecmp()函數(shù)字符串比較用法分析
- PHP字符串比較函數(shù)strcmp()和strcasecmp()使用總結(jié)
- 基于PHP字符串的比較函數(shù)strcmp()與strcasecmp()的使用詳解
- php比較兩個(gè)字符串長度的方法
- php比較相似字符串的方法
- php實(shí)現(xiàn)比較兩個(gè)字符串日期大小的方法
- php常用字符串比較函數(shù)實(shí)例匯總
- PHP學(xué)習(xí)之字符串比較和查找
- PHP中strncmp()函數(shù)比較兩個(gè)字符串前2個(gè)字符是否相等的方法
相關(guān)文章
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29
今天在百度知道上面有個(gè)朋友問php代碼解密的問題,看了代碼不是常見幾種比較感興趣,特意搜索了下,發(fā)現(xiàn)下面的方法,解決了,具體的看最后的說明。2011-01-01
PHP函數(shù)按引用傳遞參數(shù)及函數(shù)可選參數(shù)用法示例
這篇文章主要介紹了PHP函數(shù)按引用傳遞參數(shù)及函數(shù)可選參數(shù)用法,結(jié)合實(shí)例形式分析了php函數(shù)的引用傳參與可選參數(shù)具體使用技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
PHP實(shí)現(xiàn)順時(shí)針打印矩陣(螺旋矩陣)的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)順時(shí)針打印矩陣(螺旋矩陣)的方法,涉及PHP基于數(shù)組遍歷、運(yùn)算模擬打印實(shí)現(xiàn)螺旋矩陣功能的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

