php值Java字节数组

时间:2012-10-24 07:36:03

标签: java php

我对“打包”/“解包”php函数有点困惑,所以我需要php等价于以下Java代码

....
byte[] TempByte = {1, (byte)0x01};
...

PHP:

?

THX

3 个答案:

答案 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);