note 113659 added to function.empty

From: Date: Mon, 11 Nov 2013 20:59:55 +0000
Subject: note 113659 added to function.empty
Groups: php.notes 
Request: Send a blank email to php-notes+get-197493@lists.php.net to get a copy of this message
XML::Unserializer produces unexpected results because empty($key) is true when $key = 0. Example: <?php include("/usr/share/php/XML/Unserializer.php"); $xml= <<<EOD <?xml version="1.0"?> <groups _type="array"> <XML_Serializer_Tag _originalKey="0" _type="array"> <gid _type="integer">10</gid> </XML_Serializer_Tag> <XML_Serializer_Tag _originalKey="5" _type="array"> <gid _type="integer">100</gid> </XML_Serializer_Tag> </groups> EOD; $uns = new XML_Unserializer(); $res = $uns->unserialize($xml); $recs = $uns->getUnserializedData(); print_r($recs); ?> produces Array ( [0] => Array ( [gid] => 10 ) [5] => Array ( [gid] => 100 ) ) while <?php include("/usr/share/php/XML/Unserializer.php"); $xml= <<<EOD <?xml version="1.0"?> <groups _type="array"> <XML_Serializer_Tag _originalKey="5" _type="array"> <gid _type="integer">100</gid> </XML_Serializer_Tag> <XML_Serializer_Tag _originalKey="0" _type="array"> <gid _type="integer">10</gid> </XML_Serializer_Tag> </groups> EOD; $uns = new XML_Unserializer(); $res = $uns->unserialize($xml); $recs = $uns->getUnserializedData(); print_r($recs); ?> produces Array ( [1] => Array ( [gid] => 100 ) [6] => Array ( [gid] => 10 ) ) This is because the "empty" key value of 0 results in a push onto the end of the array, rather than an insertion at key position 0. ---- Server IP: 72.52.91.14 Probable Submitter: 72.52.91.14 ---- Manual Page -- http://php.net/manual/en/function.empty.php Edit -- https://master.php.net/note/edit/113659 Del: integrated -- https://master.php.net/note/delete/113659/integrated Del: useless -- https://master.php.net/note/delete/113659/useless Del: bad code -- https://master.php.net/note/delete/113659/bad+code Del: spam -- https://master.php.net/note/delete/113659/spam Del: non-english -- https://master.php.net/note/delete/113659/non-english Del: in docs -- https://master.php.net/note/delete/113659/in+docs Del: other reasons-- https://master.php.net/note/delete/113659 Reject -- https://master.php.net/note/reject/113659 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#197493) next »