2012-10-24 29 views
0

我有点confiused有关 “包”/ “解压” PHP函数,所以我需要的PHP等价于下面的Java代码php价值的Java字节数组

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

PHP:

? 

THX

回答

1

我不是100%肯定的Java代码做什么,但它看起来相当于是这样的:

$tempByte = "\x01\x01"; 

“字节数组”本质上是PHP中的字符串,或者“字符串”本质上是PHP中的字节数组。你甚至可以访问此“字节数组”使用数组偏移语法:

echo bin2hex($tempByte[0]); 
2

有真正的PHP相当于没有,因为PHP是松散类型,而不是有一个byte[]类型。

类似于Java代码的就是代码:

$TempByte = array(1, chr(1)); 
1

您发布的代码初始化一个字节数组包含两个元素,bytes的。

由于PHP是weakly typed,您无法获得此代码的完全等效代码 - 可从PHP types列表中看到。

两种语言都有数组,所以我们在这里很好,但PHP没有字节。

在Java中,一个字节被定义为从-128到127(含)范围内的带符号的8位值。

最接近的事到PHP将是一个integer,但:

的整数的大小是与平台相关的,虽然约两十亿的最大值是通常的值(这是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);