欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP7中對十六進制字符串處理的問題詳解

 更新時間:2021年11月25日 08:36:22   作者:藏色散人  
在本篇文章里小編給大家整理的是一篇關(guān)于PHP7中對十六進制字符串處理的問題詳解內(nèi)容,有需要的朋友們可以跟著學習下。

本篇文章由PHP7教程欄目給大家介紹一下關(guān)于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的問題。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

具體問題:

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11"));
var_dump($t1,$t2);

以上代碼在 php7(不含)以下平臺的值為:

int(364129809)
int(364129809)

而在 php7的值為:

int(364129809)
int(0)

請問,在 php7的環(huán)境下,應該如何處理 0x.$str 使它同上面值一樣呢?

解決辦法:

PHP7開始,含十六進制字符串不再被認為是數(shù)字

如果非要檢測字符串是否含十六進制數(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)
?>

針對上述問題就應該改成

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX)));
var_dump($t1,$t2);

到此這篇關(guān)于PHP7中對十六進制字符串處理的問題詳解的文章就介紹到這了,更多相關(guān)PHP7中對十六進制字符串處理的問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論