一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP容易被忽略而出錯陷阱 數字與字符串比較

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

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

更加詳細的比較規則, 多種類型的比較規則, 在 php手冊/語言參考/運算符/比較運算符 可以找到.

php里當兩個數字型字符串(只含數字的字符串)進行比較的時候是直接轉換成數值進行比較的
如下示例:(注意$a和$b兩個變量的最后一位不相等)
復制代碼 代碼如下:
//示例1
<?php
$a = '511203199106034578';
$b = '511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>

運行上面的程序卻發現結果為equal(非我們認為的結果)

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

復制代碼 代碼如下:
//示例2
<?php
$a = 'a511203199106034578';
$b = 'a511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>

這次輸出的是notEqual(正確的結果)

示例1為equal是因為php把兩個數字型字符串轉換成數字型,而這兩個數字剛好相等如下示例
復制代碼 代碼如下:
<?php
$a = 511203199106034578;
$b = 511203199106034579;
echo $a; // 輸出 5.1120319910603E+17 即511203199106030000
echo $b; // 輸出 5.1120319910603E+17 即511203199106030000
?>

所以我們在示例1中得到的結果是equal

避免出現這種非預期結果的情況是使用類型比較符===如下示例(如果 $a 等于 $b,并且它們的類型也相同)
復制代碼 代碼如下:
//示例4
<?php
$a = '511203199106034578';
$b = '511203199106034579';
if ($a===$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>

這樣我們就可以得到預期中的notEqual了

php技術PHP容易被忽略而出錯陷阱 數字與字符串比較,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 四虎影视免费永久在线观看黄 | 久久国内精品自在自线400部o | 欧美黄色大片免费观看 | 日产精品一区二区 | 一二三区视频 | 亚洲伊人国产 | 极品吹潮视频大喷潮tv | 伊人中文字幕在线观看 | 成人免费精品视频 | 国产高清一区二区 | 九九操视频 | 成人久久久久久 | 久久久五月天 | 四虎影视永久在线精品免费 | 黑人美国一级一级爰片 | 亚洲成片在线观看12345ba | a亚洲va韩国va欧美va久久 | 久久伊人久久 | 色播亚洲精品网站 亚洲第一 | ye321夜色资源网站 | 成人免费观看在线网址 | 五月月色开心婷婷久久合 | 久久中文字幕不卡一二区 | 国产精品极品美女自在线看免费一区二区 | 日韩天堂在线 | 国产精品久久精品福利网站 | 欧美亚洲国产精品久久 | 伊人久久大香 | 国产高清国内精品福利色噜噜 | 天天操婷婷 | 美女黄网站色一级毛片 | 97菊爱网 | 国产一区二区三区福利 | 国产成人精品一区二区免费 | 99精品国产闺蜜国产在线闺蜜 | 久久不卡日韩美女 | 国产成人精品免费视频大 | 一区卡二区卡三区卡视频 | 亚洲艳图| 久久精品国产99精品最新 | 91精品一区二区三区在线观看 |