PHP十六进制到整数

PHP十六进制到整数,php,Php,我正在将一个PHP应用程序与一个API集成,该API以0x00000008、0x20000000等形式使用权限,其中每一个都代表一个给定的权限。他们的API返回了一个整数。在PHP中,如何将0x20000000之类的内容解释为整数,以便使用位运算符 另一位开发人员告诉我,他认为这些数字是十六进制注释,但通过谷歌搜索,我在PHP中发现的结果有限这些是什么类型的数字,我如何获取整数权限集,并使用位运算符确定用户是否可以0x00000008,因为您从API接收到它,php会将其解释为字符串 echo

我正在将一个PHP应用程序与一个API集成,该API以
0x00000008
0x20000000
等形式使用权限,其中每一个都代表一个给定的权限。他们的API返回了一个整数。在PHP中,如何将
0x20000000
之类的内容解释为整数,以便使用位运算符


另一位开发人员告诉我,他认为这些数字是十六进制注释,但通过谷歌搜索,我在PHP中发现的结果有限这些是什么类型的数字,我如何获取
整数
权限集,并使用位运算符确定用户是否可以
0x00000008

,因为您从API接收到它,php会将其解释为字符串

echo hexdec('0x00000008')

返回整数8


这应该是可行的。

正如php文档中所述,与C语言中发生的情况非常相似,这种格式在php中被识别为本机整数(十六进制表示法)

演示

参考

正如@iainn和@SaltyPotato在各自的回答和评论中所建议的,由于您是从API读取数据,因此可能必须将这些值作为字符串而不是本机整数来处理。要克服这个问题,您只需在使用前通过
hexdec
函数对其进行转换


Ref

开箱即用。PHP本机支持整数变量的
0x…
表示法,但如果您有一个从API收到的字符串,则需要通过
hexdec()
运行它,您是否可以将其作为答案发布?
<?php
echo 0xDEADBEEF; // outputs 3735928559
echo 0x00000001<<3; // 1*2*2*2, outputs 8