2012-10-24 33 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);