From:             m dot stach at ewerk dot com
Operating system: All
PHP version:      5.2.2
PHP Bug Type:     SPL related
Bug description:  Classes extending ArrayObject do not serialize correctly

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 bug report at http://bugs.php.net/?id=41528&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=41528&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=41528&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=41528&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=41528&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=41528&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=41528&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=41528&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=41528&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=41528&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=41528&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=41528&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=41528&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=41528&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=41528&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=41528&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=41528&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=41528&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=41528&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=41528&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=41528&r=mysqlcfg

Reply via email to