日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php字符串与数字比较,PHP容易被忽略而出错陷阱 数字与字符串之间的比较

發布時間:2025/3/15 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php字符串与数字比较,PHP容易被忽略而出错陷阱 数字与字符串之间的比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數字與字符串之間的比較

//數值0與任意非數字(或者說,不可轉化為數字的字符)前導的字符串比較(操作符為==),均返回 true.

//原因是:數字與字符串比較時,先嘗試將字符串轉換為數字,再比較,一個不能轉換為數字的字符串,轉換結果為0,故與0比較總返回true.

//因為0和字符串比較,皆返回true 嚴格比較需要使用===(且最好加單引號)

// 0 == 'sdssdsa' 返回true(注意)

// '0' == 'sdssdsa' 返回false

// 0 === 'sdssdsa'返回false

// '0' === 'sdssdsa'返回false(嚴謹一些)

// 1 == '1asdsad'返回true(注意)

// '1' == '1asdsad'返回false

// 1 == 'a122asd'返回false

if('0' === 'sdssdsa'){

echo '相同/匹配!!!';

}else{

echo '不同/不匹配???';

}

// 特殊,兩個數值類型過長的比較。php會自動轉換類型,會影響比較結果。

//在PHP里當兩個數字型字符串(只含數字的字符串)進行比較的時候是直接轉換成數值進行比較的

$a = '511203199106034578';

$b = '511203199106034579';

if($a==$b){

echo '相同/匹配!!!


';

}else{

echo '不同/不匹配???


';

}

//運行上面的程序卻發現結果為"相同/匹配!!!"(非我們認為的結果)

//上面示例為"相同/匹配!!!"是因為PHP把兩個數字型字符串轉換成數字型,而這兩個數字剛好相等如下

$a = 511203199106034578;

$b = 511203199106034579;

echo $a."


"; // 輸出 5.1120319910603E+17 即511203199106030000

echo $b."


"; // 輸出 5.1120319910603E+17 即511203199106030000

//所以我們在示例1中得到的結果是"相同/匹配!!!"

//我們把$a與$b分別加一個字母a進去

$a = 'a511203199106034578';

$b = 'a511203199106034579';

if($a==$b){

echo '相同/匹配!!!


';

}else{

echo '不同/不匹配???


';

}

//這次輸出的是"不同/不匹配???"(正確的結果)

//避免出現這種非預期結果的情況是使用類型比較符===如下示例(如果$a等于$b,并且它們的類型也相同)

$a = '511203199106034578';

$b = '511203199106034579';

if($a===$b){

echo '相同/匹配!!!


';

}else{

echo '不同/不匹配???


';

}

//這樣我們就可以得到預期中的"不同/不匹配???"了

//(數值需要帶引號,不帶引號===返回值亦為"相同/匹配!!!")

//延伸示例

$str = 'host';

$arr = array('0'=>'AAAA','host'=>'BBBB','1'=>'CCCC');

foreach($arr as $k=>$v){

if($k == $str){//$k為數值型

echo $str.'=='.$k.'======>'.$v;

}

}

//得到的結果為:host==0======>AAAA host==host======>BBBB

So, do you want to take a leap of faith? Or become an old man, filled with regret, waiting to die alone? 那么,你愿意放手一搏,還是要等到年華老去,心中充滿遺憾,孤獨地邁向黃泉路?—《盜夢空間》

總結

以上是生活随笔為你收集整理的php字符串与数字比较,PHP容易被忽略而出错陷阱 数字与字符串之间的比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。