PHP7中对十六进制字符串处理的问题详解
更新时间:2021年11月25日 08:36:22 作者:藏色散人
在本篇文章里小编给大家整理的是一篇关于PHP7中对十六进制字符串处理的问题详解内容,有需要的朋友们可以跟着学习下。
本篇文章由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中对十六进制字符串处理的问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
PHP识别二维码的方法(php-zbarcode安装与使用)
这篇文章主要介绍了PHP识别二维码的方法,通过安装ImageMagick和php-zbarcode扩展实现针对二维码的识别功能,具有一定参考借鉴价值,需要的朋友可以参考下2016-07-07php heredoc和phpwind的模板技术使用方法小结
Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind就是一个典型的例子。2008-03-03
最新评论