PHP的var_dump(‘1‘==‘1e0‘)的结果为true
今天,同學(xué)問(wèn)我一個(gè)問(wèn)題,如下:var_dump("1" == "1e0"); 的結(jié)果是什么。
我的第一反應(yīng),答案是false。因?yàn)楹苊黠@的要比較的是兩個(gè)字符串,而字符串比較時(shí),只需比較其內(nèi)容即可。很明顯, 兩個(gè)字符串的內(nèi)容并不一樣,當(dāng)然是false了。
然而,我又注意到要比較的字符串中存在一個(gè)純數(shù)字字符串“1”,那根據(jù)規(guī)則,當(dāng)要比較的是兩個(gè)純數(shù)字字符串時(shí)要轉(zhuǎn)換成數(shù)值型來(lái)比較。這里只有一個(gè)。所以仍應(yīng)該安字符串來(lái)比較,結(jié)果仍為false。
但實(shí)際運(yùn)行代碼,結(jié)果確實(shí)true,我和我的小伙伴都震驚了!!怎么可能是true!!為什么會(huì)是true!!這跟說(shuō)好的不一樣啊!!
經(jīng)過(guò)我們仔細(xì)的研究,發(fā)現(xiàn)這竟然不是兩個(gè)普通字符串在比較,而是兩個(gè)純數(shù)值字符串!!因?yàn)椤?e0”竟然是科學(xué)計(jì)數(shù)法的1!!
//e0表示10的0次方。所以1e0表示:1*10的0次方。
var_dump(1e0);?? ?//float(1)
var_dump(1e3);?? ?//float(1000)
所以當(dāng)var_dump("1" == "1e0")時(shí),結(jié)果才為true。
總結(jié)
以上是生活随笔為你收集整理的PHP的var_dump(‘1‘==‘1e0‘)的结果为true的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 充电桩行业的上市公司 电动汽车催生出的热
- 下一篇: PHP中类明明存在 但class_exi