「pack」/「unpack」php関数について少し混乱しているので、次のJavaコードと同等のphpが必要です。
....
byte[] TempByte = {1, (byte)0x01};
...
php:
?
どうも
phpは大まかに型付けされており、byte[]
型がないため、実際のphpに相当するものはありません。
Javaコードに最もよく似ているコードは次のとおりです。
$TempByte = array(1, chr(1));
そのJavaコードが何をするのか100%わかりませんが、次のようなものと同等に見えます。
$tempByte = "\x01\x01";
「バイト配列」は基本的にPHPの文字列であり、「文字列」は基本的にPHPのバイト配列です。配列オフセット構文を使用して、この「バイト配列」にアクセスすることもできます。
echo bin2hex($tempByte[0]);
投稿したコードは、 bytesという2つの要素で構成されるバイト配列を初期化します。
PHPは弱い型付けであるため、このコードと完全に同等のものを取得することはできません。これは、PHP型のリストから確認できます。
どちらの言語にも配列があるので、ここでは問題ありませんが、PHPにはバイトがありません。
Javaでは、バイトは-128から127(両端を含む)の範囲の符号付き8ビット値として定義されます。
そのPHPに最も近いものは整数ですが、次のようになります。
整数のサイズはプラットフォームに依存しますが、最大値の約20億が通常の値(32ビット符号付き)です。64ビットプラットフォームの最大値は通常約9E18です。PHPは符号なし整数をサポートしていません。整数サイズは定数PHP_INT_SIZEを使用して決定でき、最大値は定数PHP_INT_MAXを使用してPHP4.4.0およびPHP5.0.5以降で決定できます。
したがって、私の提案は(32ビットプラットフォームの場合)次のようになります。
$TempByte = array(0x0001 & 1, 0x0001 & 1);