|
packデータをバイナリ文字列にパックする 説明
string pack(string
$format , mixed ...$values )
指定された引数を この関数のアイデアは Perl からのものであり、フォーマット指定用の コードは Perl と同様に動作します。しかし、中には存在しない書式コードもあります。 たとえば Perl の "u" は存在しません。 符号付及び符号無しの区別は関数 unpack にのみ 影響を与えます。関数 pack は符号付及び符号無しの フォーマットコードのどちらでも同じ結果となることに注意しましょう。 パラメータ
戻り値バイナリ文字列を含むデータを返します。 変更履歴
例
例1 pack の例
この結果のバイナリ文字列の長さは 6 バイト長で、バイト列 0x12, 0x34, 0x78, 0x56, 0x41, 0x42となります。 注意警告
PHP は、int 型の値を内部的に格納する際に
サイズがマシン依存の符号付き値 (C の
この問題にもっとも関連するのが、符号なしの数値で int
型で表現できるものをパックする場合です。
int 型のサイズが 32 ビットであるシステムでのキャスト結果は、
(実装で定義されている標準 C の符号なし型から符号付き型への変換に依存しますが)
まるで int が符号なし整数であるかのような同一のバイトパターンになることがよくあります。
int 型のサイズが 64 ビットであるシステムでは、
たいていの場合は float の仮数部のサイズが足りず、
値の精度を損なわずに保持することができません。
ネイティブの 64 ビット C 参考
|