本文介紹php開發(fā)中常用的字符串比較的方法,以PHP7.4為例,可以使用雙等號,strcmp()方法,strcasemp()方法、strncasecmp()方法以及ctrncmp()方法,等進行判斷,下邊以"=="和strcmp()方法為例進行舉例:
// 定義插入的數(shù)據(jù) $data = [ "name" => "張三", "age" => "25", "detail" => "我是張三" ]; $insertData = Db::name("user") ->where("name",$data["name"]) ->value("name");
1、使用運算符“==”比較字符串是否相等
“==”表示“相等”,是一個比較運算符,用于比較等號兩邊表達式或變量是否相等。
if ($data["name"] ===$insertData){ echo "你插入的姓名有重復,請重寫!"; }else{ $result = Db::name("user") ->insert($data); halt($result); }
2、使用strcmp()函數(shù)比較字符串是否相等
strcmp() : 比較兩個字符串(大小寫敏感)。
返回值分為3種情況:
0 - 如果兩個字符串相等
<0 - 如果 字符串1 小于 字符串2
>0 - 如果 字符串1 大于 字符串2
只需要檢查strcmp()函數(shù)的返回值是否等于0即可知道兩字符串是否相等。
if (strcmp($data["name"],$insertData) !=0){ $result = Db::name("user") ->insert($data); halt($result); }else{ echo "你插入的姓名有重復,請重新填寫!"; };
3、使用strcasecmp()函數(shù)比較字符串是否相等
PHP 中的 strcasecmp() 函數(shù)與 strcmp() 函數(shù)的功能類似,都可以比較兩個字符串,不同的是 strcasecmp() 函數(shù)在比較字符串時不會區(qū)分大小寫,其語法格式如下:
根據(jù)比較結果,
如果 $str1 小于 $str2,則返回值 < 0;
如果 $str1 大于 $str2,則返回值 > 0;
如果 $str1 于 $str2 相等,則返回 0。
只需要檢查strcasecmp()函數(shù)的返回值是否等于0即可知道兩字符串是否相等。
4、使用strncasecmp()函數(shù)比較字符串是否相等
strncasecmp() 函數(shù)比較兩個字符串(不區(qū)分大小寫)。
該函數(shù)與 strcasecmp() 函數(shù)類似,不同的是,strcasecmp() 沒有 length 參數(shù)(不能指定每個字符串用于比較的字符數(shù))。
返回值和strcasecmp() 函數(shù)一樣
5、使用strncmp()函數(shù)比較字符串是否相等
strncmp() 函數(shù)比較兩個字符串(區(qū)分大小寫)。
該函數(shù)與 strcmp() 函數(shù)類似,不同的是,strcmp() 沒有 length 參數(shù)(不能指定每個字符串用于比較的字符數(shù))。
返回值和strcmp() 函數(shù)一樣