PHP7中对十六进制字符串处理的问题详解
程序员文章站
2022-03-01 13:31:44
本篇文章由php7教程栏目给大家介绍一下关于 php7 中 "0xffffffff" 和 0xffffffff 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。具体问题:$t1...
本篇文章由php7教程栏目给大家介绍一下关于 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的环境下,应该如何处理 0x.$str 使它同上面值一样呢?
解决办法:
php7开始,含十六进制字符串不再被认为是数字
如果非要检测字符串是否含十六进制数字,官方建议的代码是
<?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);
到此这篇关于php7中对十六进制字符串处理的问题详解的文章就介绍到这了,更多相关php7中对十六进制字符串处理的问题内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
下一篇: php7 安装mysqli实例讲解
推荐阅读
-
Python中MySQLdb和torndb模块对MySQL的断连问题处理
-
对python PLT中的image和skimage处理图片方法详解
-
jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法
-
Python中MySQLdb和torndb模块对MySQL的断连问题处理
-
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
-
计算机中的字符串编码、乱码、BOM等问题详解
-
对numpy中布尔型数组的处理方法详解
-
对python PLT中的image和skimage处理图片方法详解
-
详解Mysql查询条件中字符串尾部有空格也能匹配上的问题
-
基于vue中对鼠标划过事件的处理方式详解