Open morpheouss opened 6 years ago
If the target array to serialize is empty, then the serialize() function is a noop.
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.
Why close?
$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.