首页 > 编程语言 >PHP7中对十六进制字符串处理的问题详解

PHP7中对十六进制字符串处理的问题详解

时间:2023-02-05 21:11:48浏览次数:48  
标签:十六进制 php7 0x3FFFFFFF 0xd5b42e11 t2 详解 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,0x3FFFFFFF,0xd5b42e11,t2,详解,PHP7
From: https://www.cnblogs.com/dituirenwu/p/17093947.html

相关文章

  • php生成唯一uid的解决方法详解
    目录一、生成唯一uuid二、生成唯一uid三、生成唯一uid的正确方法补充 一、生成唯一uuid看到某些人会用uuid去代替用户的uid从代码中可以看出,通过unique生成一个......
  • php操作ElasticSearch搜索引擎流程详解
    目录一、安装二、使用三、新建ES数据库四、创建表五、插入数据六、查询所有数据七、查询单条数据八、搜索九、测试代码〝古人学问遗无力,少壮功夫老始成〞......
  • block详解
    在网上搜关于block的知识都不是特别详细,在这里对block做一个详细的描述,从入门开始到满足日常大部分开发需要。block定义:block说白了就是一段代码块,提前存储一段代码,想要执行......
  • php7 安装mysqli实例讲解
    php7怎么安装Mysqli?Centosphp7安装mysqli扩展心得在新配服务器时发现,php无法连接到mysql。通过phpinfo发现。根本没有显示mysqli的相关配置。经过一系列研究。总结了......
  • 腾讯出品小程序自动化测试框架【Minium】系列(五)API详解(中)
    写在前面又有好久没更新小程序自动化测试框架Minium系列文章了,主要真的太忙,尽量做到每周一更吧,还请大家能够理解!上篇文章为大家分享关于Minium中Minium、App模块的API ......
  • left join(左连接)、right join(右连接)、full join(全连接)、inner join(内连接)、cr
    (1)leftjoin(左连接)在两张表进行连接查询时,会返回左表所有的行数据,右表中返回只返回和左表匹配的数据,没有的显示为Null。(2)rightjoin(右连接)在两张表进行连接查询时,会返......
  • PHP7 preg_replace 出错及解决办法
    问题描述:PHP7废弃了preg_replace?原本是中php5中处理url中后面参数替换清除的,代码如下$url=preg_replace('/([?&])src=[^&]+(&?)/e','"$2"==""?"":"$1"',$url);但......
  • OpenMP中For Construct对dynamic的调度方式详解
    前言在本篇文章当中主要给大家介绍OpenMpforconstruct的实现原理,以及与他相关的动态库函数分析,与forconstruct非常相关的是循环的调度方式,在OpenMP当中一共有四......
  • Spring事务传播行为详解
    前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为......
  • Dijkstra算法详解(朴素算法+堆优化)
    定义Dijkstra(读音:/'daɪkstrə/)算法,是用来求解一个边带权图中从某个顶点出发到达其余各个顶点的最短距离的算法。(为表达简便,下文中“起点(源点)到某个顶点的距离”简称为“......