PHP7中對(duì)十六進(jìn)制字符串處理的問題詳解
本篇文章由PHP7教程欄目給大家介紹一下關(guān)于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的問題。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。
具體問題:
$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)問,在 php7的環(huán)境下,應(yīng)該如何處理 0x.$str 使它同上面值一樣呢?
解決辦法:
PHP7開始,含十六進(jìn)制字符串不再被認(rèn)為是數(shù)字
如果非要檢測(cè)字符串是否含十六進(jìn)制數(shù)字,官方建議的代碼是
<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>
針對(duì)上述問題就應(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)制字符串處理的問題詳解的文章就介紹到這了,更多相關(guān)PHP7中對(duì)十六進(jìn)制字符串處理的問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php實(shí)現(xiàn)表單多按鈕提交action的處理方法
這篇文章主要介紹了php實(shí)現(xiàn)表單多按鈕提交action的處理方法,需要的朋友可以參考下2015-10-10
PHP實(shí)現(xiàn)異步延遲消息隊(duì)列的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用PHP+Laravel+RabbitMQ來實(shí)現(xiàn)異步延遲消息隊(duì)列,文中的實(shí)現(xiàn)過程講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下吧2022-05-05
詳解php魔術(shù)方法(Magic methods)的使用方法
有些東西如果不是經(jīng)常使用,很容易忘記,比如魔術(shù)方法和魔術(shù)常量,這篇文章主要介紹了php魔術(shù)方法(Magic methods)的使用方法,感興趣的小伙伴們可以參考一下2016-02-02
表單提交錯(cuò)誤后返回內(nèi)容消失問題的解決方法(PHP網(wǎng)站)
這篇文章主要介紹了表單提交錯(cuò)誤后返回內(nèi)容消失問題的解決方法,需要的朋友可以參考下2015-10-10
php使用str_shuffle()函數(shù)生成隨機(jī)字符串的方法分析
這篇文章主要介紹了php使用str_shuffle()函數(shù)生成隨機(jī)字符串的方法,結(jié)合兩個(gè)簡(jiǎn)單實(shí)例形式分析了基于str_shuffle()函數(shù)的隨機(jī)打亂字符串順序功能實(shí)現(xiàn)隨機(jī)字符串的相關(guān)操作技巧,需要的朋友可以參考下2017-02-02

