天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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容易被忽略而出錯陷阱 數字與字符串比較,轉載需保留來源!

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

主站蜘蛛池模板: 最美白嫩的极品美女ASSPICS | 99视频偷窥在线精品国自产拍 | 国外成人电台 | 洲精品无码高潮喷水A片 | 免费人成在线观看网站视频 | 欧美日韩亚洲综合2019 | 1313久久国产午夜精品理论片 | 国产在线精品亚洲 | 18岁末年禁止观看免费1000个 | 亚洲第一成年人网站 | 高清不卡伦理电影在线观看 | xx顶级欧美熟妞xxhd | 久久亚洲精品AV无码四区 | 亚洲AV午夜福利精品香蕉麻豆 | 国产又湿又黄又硬又刺激视频 | 精品视频在线观看视频免费视频 | 试看2分钟AA片 | 美女爽到嗷嗷嗷叫 | 麻豆人妻无码性色AV | 亚洲色图在线观看视频 | 最新国产精品视频免费看 | 午夜日本大胆裸艺术 | 国产精品视频yy9099 | 99久热这里精品免费 | 神马电影dy888午夜我不卡 | 老阿姨儿子一二三区 | 四虎免费影院 | 女的把腿张开男的往里面插 | 久久国产热视频99rev6 | 国产精品人妻无码久久久2022 | 被吊起玩弄的女性奴 | 欧美最猛12teevideos | 黄页网站免费视频大全9 | 亚洲 在线 日韩 欧美 | 国产高潮久久精品AV无码 | 在线自拍亚洲视频欧美 | 野花香在线观看免费观看大全动漫 | 色宅男看片午夜大片免费看 | 精品国产乱码久久久久久上海公司 | 在线免费观看毛片网站 | 99热这里只有是精品 |