四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

PHP容易被忽略而出錯(cuò)陷阱 數(shù)字與字符串比較

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

原因是, 數(shù)字與字符串比較時(shí), 先嘗試將字符串轉(zhuǎn)換為數(shù)字, 再比較, 一個(gè)不能轉(zhuǎn)換為數(shù)字的字符串, 轉(zhuǎn)換結(jié)果為0, 故, 與0比較總返回 true.

更加詳細(xì)的比較規(guī)則, 多種類型的比較規(guī)則, 在 php手冊/語言參考/運(yùn)算符/比較運(yùn)算符 可以找到.

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

運(yùn)行上面的程序卻發(fā)現(xiàn)結(jié)果為equal(非我們認(rèn)為的結(jié)果)

我們把$a與$b分別加一個(gè)字母a進(jìn)去

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

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

示例1為equal是因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php把兩個(gè)數(shù)字型字符串轉(zhuǎn)換成數(shù)字型,而這兩個(gè)數(shù)字剛好相等如下示例
復(fù)制代碼 代碼如下:
<?php
$a = 511203199106034578;
$b = 511203199106034579;
echo $a; // 輸出 5.1120319910603E+17 即511203199106030000
echo $b; // 輸出 5.1120319910603E+17 即511203199106030000
?>

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

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

這樣我們就可以得到預(yù)期中的notEqual了

php技術(shù)PHP容易被忽略而出錯(cuò)陷阱 數(shù)字與字符串比較,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 艳妻互换电影| 电影《神盾局特工》| 音乐僵尸演员表| 松永| 白宝山电视剧26集免费观看| 真的爱你最标准谐音歌词| 密桃成孰时| 七上语文背诵清单表| 美少女写真| 战地天使| 电影1921| 广西百色地图| 电影在线观看高清完整版| 吃大米饭是增肥还是减肥| 辛颖| 北京卫视节目表今天| 美女mm| 孙东杓| 双男动漫| 爱情岛论坛.| 发如雪 歌词| 布拉德米勒| 眼皮下垂手术费用多少钱| 免费播放高清完整版电影| 英雄使命电视剧| 加油吧实习生演员表| 男骑女| 山东卫视节目表| 普罗米修斯 电影| 手游传奇排行榜第一名| 冯友薇| 电视直播pro| 村上信五| 意外的春天 电影| 妈妈的朋友电影天堂| 新亮剑40集免费观看完整版高清| 三夫 电影| 死神降临| 漂亮孕妇突然肚子疼视频| 故乡之恋简谱| 零食加盟店10大品牌|