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

 ID:                 41528
 Comment by:         jachym dot tousek at gmail dot com
 Reported by:        m dot stach at ewerk dot com
 Summary:            Classes extending ArrayObject do not serialize
                     correctly
 Status:             Closed
 Type:               Bug
 Package:            SPL related
 Operating System:   *
 PHP Version:        5.2.*
 Assigned To:        davidc
 Block user comment: N
 Private report:     N

 New Comment:

I've the same problem in PHP 5.3.5 / Windows 7.


Previous Comments:
------------------------------------------------------------------------
[2007-12-17 15:16:11] dav...@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.



------------------------------------------------------------------------
[2007-12-06 16:06:49] he...@php.net

There is a fix for it in 5.3.0 that needs a few tweaks, you can test it
for your usage already though. Assigning to david to do the tweaking.

------------------------------------------------------------------------
[2007-08-05 15:31:25] pcdinh at gmail dot com

This bug remain still on PHP 5.2.4RC1

------------------------------------------------------------------------
[2007-05-29 10:48:09] m dot stach at ewerk dot com

Description:
------------
If a class extends ArrayObject, serializing does not work correctly. All
properties are missing after unserializing, only the array contents are
remain.



ArrayObjects (un)serializes without problems and does not implement the
Serializable interface, so there seems no need to change the
implementation of that interface.



The documentation mentions that it is not possible to serialize objects
of internal class. Since ArrayObject itself serializes fine, I regard
ArrayObject as "non-internal".



May be this is a documentation bug. But this would IMHO limit the broad
use of the ArrayObject class.

Reproduce code:
---------------
class a extends ArrayObject {

        public $a = 2;

}

        

$a = new a();

$a->a = 1;



var_dump($a);

var_dump($a->a);



$a = unserialize(serialize($a));



var_dump($a);

var_dump($a->a);



Expected result:
----------------
object(a)#1 (1) { ["a"]=>  int(1) }

int(1) 



object(a)#1 (1) { ["a"]=>  int(1) } 

int(1) 



Actual result:
--------------
object(a)#1 (0) { } 

int(1)



object(a)#2 (0) { } 

int(2)


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



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

Reply via email to