Re: PHP 4.0 Bug #7619 Updated: serialize() works not correct with cascaded objects in some circumstances

From: Date: Fri, 01 Dec 2000 12:31:27 +0000
Subject: Re: PHP 4.0 Bug #7619 Updated: serialize() works not correct with cascaded objects in some circumstances
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-39778@lists.php.net to get a copy of this message
Hi Jani, now I'v got the latest snapshot and it seems that the serialize-bug is fixed. All my scripts seems to work just fine now (with Linux/Apache/PHP4.0.4-DEV_DSO). I could not try anything with Win9x, because I don't have MSVC++ to compile PHP under Windows OS. If anyone have a compiled version for Windows as ISAPI ".dll" please send it to me and I'll try. CU, Guido On 29 Nov 2000, Bug Database wrote: > ID: 7619 > Updated by: sniper > Reported By: i088@informatik.fh-wuerzburg.de > Status: Feedback > Bug Type: Variables related > Assigned To: > Comments: > > Could you please try latest snapshot from http://snaps.php.net/ > ? > This example code of yours works for me just fine (Linux). > > --Jani > > Previous Comments: > --------------------------------------------------------------------------- > > [2000-11-29 16:13:49] i088@informatik.fh-wuerzburg.de > Here the script: > ------------------------cut here---------------------------- > <html> > <head> > <title>Serialize-Test</title> > </head> > <body> > <?php > class MetaClass > { > var $id; > var $MainClassObject; > } > > class MainClass > { > var $id; > var $SubClassObjectArray; > } > > class SubClass > { > var $id; > var $Item; > } > > function MainClass_addSubClassObject(&$MainClassReference, $SubClassObject) > { > $MainClassReference->SubClassObjectArray[]=$SubClassObject; > } > > > $myMetaClass=new MetaClass; > $myMetaClass->id=uniqid(""); > > $myMainClass=new MainClass; > $myMainClass->id=uniqid(""); > > $myMetaClass->MainClassObject=$myMainClass; > > $mySubClass1=new SubClass; > $mySubClass1->id=uniqid(""); > $mySubClass1->Item="SubClass 1"; > > MainClass_addSubClassObject($myMetaClass->MainClassObject, $mySubClass1); > > $mySubClass2=new SubClass; > $mySubClass2->id=uniqid(""); > $mySubClass2->Item="SubClass 2"; > > MainClass_addSubClassObject($myMetaClass->MainClassObject, $mySubClass2); > > $myoldMainClass=$myMetaClass->MainClassObject; > $myoldSubClass=reset($myoldMainClass->SubClassObjectArray); > while ($myoldSubClass) > { > print > $myoldSubClass->id."----".$myoldSubClass->Item."<br>n"; > $myoldSubClass=next($myoldMainClass->SubClassObjectArray); > } > print "<br>n"; > > $serialized_data=serialize($myMetaClass); > print $serialized_data."<br>n"; > print "<br>n"; > $unserialized_data=unserialize($serialized_data); > > $mynewMainClass=$unserialized_data->MainClassObject; > $mynewSubClass=reset($mynewMainClass->SubClassObjectArray); > while ($mynewSubClass) > { > print > $mynewSubClass->id."----".$mynewSubClass->Item."<br>n"; > $mynewSubClass=next($mynewMainClass->SubClassObjectArray); > } > ?> > </body> > </html> > ------------------------cut here---------------------------- > > > --------------------------------------------------------------------------- > > [2000-11-29 06:37:15] sniper@php.net > No feedback. > > --------------------------------------------------------------------------- > > [2000-11-05 06:31:43] stas@php.net > Could you please provide some short example code? > > --------------------------------------------------------------------------- > > [2000-11-03 08:13:04] i088@informatik.fh-wuerzburg.de > serialize() works not correct with cascaded objects in some circumstances (on PHP 3.0.1x this > worked correct !!) : > You have an object whitch contains "normal" variables like integers, strings and also > other objects. These other objects also contains integers, strings etc. and again objects: > > object 1 --- variable 11 > |- variable 12 > | : > |- variable 1x > |- object 2 --- variable 21 > |- variable 22 > | : > |- variable 2x > |- object 3 --- variable 31 > | : > |- variable 3x > > Under some circumstances the output that serialize() produces does only contain the top-level > object (object 1)with its "normal" variables (variable 11 ... variable 1x). The other > objects (object 2 and 3) with all there variables are lost. > > --------------------------------------------------------------------------- > > > Full Bug description available at: http://bugs.php.net/?id=7619 > >

« previous php.dev (#39778) next »