symisc / PH7

An Embedded Implementation of PHP (C Library)
http://ph7.symisc.net
Other
494 stars 68 forks source link

Serialization of arrays does not work as expected #23

Open morpheouss opened 6 years ago

morpheouss commented 6 years ago

$GLOBALS is an associative array which contains the following value: Array(10) { [_SERVER] => Array(1) { [SCRIPT_FILENAME] => test.ph7 } [_GET] => Array(0) { } [_POST] => Array(0) { } [_FILES] => Array(0) { } [_COOKIE] => Array(0) { } [_SESSION] => Array(0) { } [_REQUEST] => Array(0) { } [_ENV] => Array(0) { } [_HEADER] => Array(0) { } [argv] => Array(0) { } }

Anyway the following code: var_dump(unserialize(serialize($GLOBALS))); produces the following output: array(10) { [0] => array(1) { [0] => string(8 'test.ph7') } [1] => array(0) { } [2] => array(0) { } [3] => array(0) { } [4] => array(0) { } [5] => array(0) { } [6] => array(0) { } [7] => array(0) { } [8] => array(0) { } [9] => array(0) { } }

As you can see, they array somehow got converted from associative to numeric.

symisc commented 6 years ago

If the target array to serialize is empty, then the serialize() function is a noop.

morpheouss commented 6 years ago

Dont you see that in this particular case both $GLOBALS and $GLOBALS['_SERVER'] are not empty arrays? They got converted from associative to numeric and this is IMHO a bug.

morpheouss commented 6 years ago

Why close?