Edit report at http://bugs.php.net/bug.php?id=16073&edit=1

 ID:                 16073
 Updated by:         [email protected]
 Reported by:        ahristov at icygen dot com
 Summary:            Cannot unserialize() a string serialized with
                     serialize()
-Status:             Open
+Status:             Bogus
 Type:               Feature/Change Request
-Package:            Feature/Change Request
+Package:            *General Issues
 Operating System:   RH 7.1
 PHP Version:        4.0CVS-2002-03-14
 Block user comment: N
 Private report:     N

 New Comment:

AFAIK, this was some bug that got fixed.


Previous Comments:
------------------------------------------------------------------------
[2002-03-14 10:20:54] ahristov at icygen dot com

Not sure if this is a bug but serialize() cannot work with arrays that
holds elements which points to the array itself



<?php

        $b=array(1,2,4);

  $b[]=&$b;

        $str=serialize($b);

        var_dump($b);

        var_dump($str);

        $c=unserialize($str);

        var_dump($c);

?>

The ouput is:

array(4) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  [2]=>

  int(4)

  [3]=>

  *RECURSION*

}

string(64)
"a:4:{i:0;i:1;i:1;i:2;i:2;i:4;i:3;a:4:{i:0;i:1;i:1;i:2;i:2;i:4;}}"

bool(false)



If 

$b[]=&$b;

removed the output is:

array(3) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  [2]=>

  int(4)

}

string(30) "a:3:{i:0;i:1;i:1;i:2;i:2;i:4;}"

array(3) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  [2]=>

  int(4)

}

That's ok.

Serialize() have either to check against recursion or encode somehow the
recursion in the serialized(great BC impact).



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=16073&edit=1

Reply via email to