From 693563124fdd9193594b80b9c9f69fb736c6c9b7 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Thu, 10 Feb 2011 12:36:37 +0000 Subject: [PATCH] Update pack() documentation. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@308185 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/misc/functions/unpack.xml | 61 +++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/reference/misc/functions/unpack.xml b/reference/misc/functions/unpack.xml index e068af41dd..a2729cf485 100644 --- a/reference/misc/functions/unpack.xml +++ b/reference/misc/functions/unpack.xml @@ -18,10 +18,11 @@ format. - unpack works slightly different from Perl as - the unpacked data is stored in an associative array. To + The unpacked data is stored in an associative array. To accomplish this you have to name the different format codes and - separate them by a slash /. + separate them by a slash /. If a repeater argument is present, + then each of the array keys will have a sequence number behind + the given name. @@ -65,17 +66,35 @@ ]]> - The resulting array will contain the entries "chars1", - "chars2" and "int". + The resulting array will contain the entries "chars" with value + 4 and "int" with 160. - + + + + <function>unpack</function> example with a repeater + + + ]]> + + + The resulting array will contain the entries "chars1", + "chars2" and "int". + + + + &reftitle.notes; @@ -87,6 +106,34 @@ $array = unpack("c2chars/nint", $binarydata); even though unsigned unpacking was specified. + + + Be aware that if you do not name an element, an empty string is used. + If you do not name more than one element, this means + that some data is overwritten as the keys are the same such as in: + + + + <function>unpack</function> example with unnamed keys + + +]]> + + + The resulting array will contain the entries "1" with value + 160 and "2" with 66. The + first value from the c specifier is + overwritten by the first value from the n + specifier. + + + +