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

PHP字符串 ==比較運算符的副作用

復制代碼 代碼如下:
$a = '212345678912000005';
$b = '212345678912000001';
var_dump($a == $b);

這段代碼的輸出是bool(true), 說明這樣判斷會得出結論是兩者相等. 類似的特性在in_array()函數第3個參數為false或者不設置的情況. 原因是首先判斷字符串是否是數字, 然后轉換成long或者double(C語言數據類型)再判斷 - 使用zendi_smart_strcmp. 但是, 源碼中的注釋說聲明考慮了溢出的情況,
復制代碼 代碼如下:
} else if (dval1 == dval2 && !zend_finite(dval1)) {
    /* Both values overflowed and have the same sign,
     * so a numeric comparison would be inaccurate */
    goto string_cmp;
}

dval1和dval2分別是兩個字符串轉換為double型后的值. 但為什么還是這樣呢? 也許這個判斷并不正確. 進一步研究再說...

解決方法, 使用三個等號"==="代替兩個等號"==", in_array()函數設置第三個參數為true: in_array('val', $array, true).

php技術PHP字符串 ==比較運算符的副作用,轉載需保留來源!

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

主站蜘蛛池模板: 澳门风云3演员表| 一江春水向东流电影| 张小波的个人资料简介| 杨幂一级毛片在线播放| 张纪中个人简历| 萱草花二声部合唱谱| 老爸老妈浪漫史第一季| 优秀范文| 裸色亮片| 架子姐姐| 让我听懂你的语言歌词| 投诉法官最快最有效果电话| 我的冠军男友在线看全集完整| 湖南卫视节目表今天| 一吻定情1| 生长因子是结痂前用还是掉痂后用 | 浙江卫视今日节目表| after17吉他谱| 春闺梦里人电影在线观看| 原华个人图片| 天降奇缘 电视剧| 土壤动植物的乐园教学反思| 浪人街| 钟绍图| 朱莉安妮全集在线观看免费| 女同视频在线| 蝴蝶视频在线观看| 我和我的父辈 电影| 暴雪将至电影| 52bb| 女怕嫁错郎演员表| 睡衣派对| 极度险情| 电影《三体》| 69视频污| 扫毒3:人在天涯 电影| 《杨贵妃淫史》三级| 视频999| 德鲁| jaud1接口接什么| 车辆年检新规几年一审|