本篇文章由PHP7教程欄目給大家介紹一下關(guān)于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的問(wèn)題。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。
具體問(wèn)題:$t1?=?0x3FFFFFFF?&?(1?*?(0xd5b42e11)); $t2?=?0x3FFFFFFF?&?(1?*?("0xd5b42e11")); var_dump($t1,$t2);
以上代碼在 php7(不含)以下平臺(tái)的值為:
int(364129809) int(364129809)
而在 php7的值為:
int(364129809) int(0)
請(qǐng)問(wèn),在 php7的環(huán)境下,應(yīng)該如何處理 0x.$str 使它同上面值一樣呢?
解決辦法:PHP7開(kāi)始,含十六進(jìn)制字符串不再被認(rèn)為是數(shù)字
如果非要檢測(cè)字符串是否含十六進(jìn)制數(shù)字,官方建議的代碼是
針對(duì)上述問(wèn)題就應(yīng)該改成
$t1?=?0x3FFFFFFF?&?(1?*?(0xd5b42e11)); $t2?=?0x3FFFFFFF?&?(1?*?(filter_var("0xd5b42e11",?FILTER_VALIDATE_INT,?FILTER_FLAG_ALLOW_HEX))); var_dump($t1,$t2);
到此這篇關(guān)于PHP7中對(duì)十六進(jìn)制字符串處理的問(wèn)題詳解的文章就介紹到這了,希望大家以后多多支持好二三四!