我对“打包”/“解包”php函数有点困惑,所以我需要php等价于以下Java代码
....
byte[] TempByte = {1, (byte)0x01};
...
PHP:
?
THX
答案 0 :(得分:2)
没有真正的PHP等价物,因为php是松散类型,而且没有byte[]
类型。
最类似于您的java代码的代码是:
$TempByte = array(1, chr(1));
答案 1 :(得分:1)
我不是100%确定Java代码的功能,但它看起来与以下内容完全相同:
$tempByte = "\x01\x01";
“字节数组”本质上是PHP中的字符串,或者更确切地说“字符串”本质上是PHP中的字节数组。您甚至可以使用数组偏移语法访问此“字节数组”:
echo bin2hex($tempByte[0]);
答案 2 :(得分:1)
您发布的代码初始化了一个由两个元素bytes组成的字节数组。
由于PHP为weakly typed,因此您无法获得此代码的完全等效内容 - 可以从PHP types列表中看到。
两种语言都有数组,所以我们在这里很好,但PHP没有字节。
在Java中,一个字节被定义为带符号的8位值,范围从-128到127(含)。
与PHP最接近的是integer,但是:
整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位有符号)。 64位平台的最大值通常约为9E18。 PHP不支持无符号整数。整数大小可以使用常量PHP_INT_SIZE来确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX来确定。
所以,我的建议是(对于32位平台):
$TempByte = array(0x0001 & 1, 0x0001 & 1);