Running the following code:
class Foo {
var $bar_ref;
}
class Bar {
var $foo_ref;
}
$foo = new Foo();
$bar = new Bar();
$foo->bar_ref = $bar;
$bar->foo_ref = $foo;
var_dump($foo);
var_dump($bar);
$s = serialize($foo);
var_dump($s);
$s = serialize($bar);
var_dump($s);
in PHP_4_3 results to:
object(foo)(1) {
["bar_ref"]=>
object(bar)(1) {
["foo_ref"]=>
NULL
}
}
object(bar)(1) {
["foo_ref"]=>
object(foo)(1) {
["bar_ref"]=>
object(bar)(1) {
["foo_ref"]=>
NULL
}
}
}
string(58) "O:3:"foo":1:{s:7:"bar_ref";O:3:"bar":1:{s:7:"foo_ref";N;}}"
string(86)
"O:3:"bar":1:{s:7:"foo_ref";O:3:"foo":1:{s:7:"bar_ref";O:3:"bar":1:{s:7:"foo_ref";N;}}}"
in HEAD:
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
RECURSION
}
}
}
}
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
RECURSION
}
}
}
}
and a segfault (apache 1 sapi) or a runaway process (cli sapi).
Jan.
--
http://www.horde.org - The Horde Project
http://www.ammma.de - discover your knowledge
http://www.tip4all.de - Deine private Tippgemeinschaft
That's quite intentional - assignments in ZE2 are handle based, versus the
value based in ZE1. That's more or less the biggest change in ZE2 :)
If you want to create copies like in ZE1 you can use __clone().
Zeev
At 06:13 25/03/2003, Jan Schneider wrote:
Running the following code:
class Foo {
var $bar_ref;
}class Bar {
var $foo_ref;
}$foo = new Foo();
$bar = new Bar();
$foo->bar_ref = $bar;
$bar->foo_ref = $foo;var_dump($foo);
var_dump($bar);$s = serialize($foo);
var_dump($s);
$s = serialize($bar);
var_dump($s);in PHP_4_3 results to:
object(foo)(1) {
["bar_ref"]=>
object(bar)(1) {
["foo_ref"]=>
NULL
}
}
object(bar)(1) {
["foo_ref"]=>
object(foo)(1) {
["bar_ref"]=>
object(bar)(1) {
["foo_ref"]=>
NULL
}
}
}
string(58) "O:3:"foo":1:{s:7:"bar_ref";O:3:"bar":1:{s:7:"foo_ref";N;}}"
string(86)
"O:3:"bar":1:{s:7:"foo_ref";O:3:"foo":1:{s:7:"bar_ref";O:3:"bar":1:{s:7:"foo_ref";N;}}}"in HEAD:
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
RECURSION
}
}
}
}
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
object(bar)#2 (1) {
["foo_ref"]=>
object(foo)#1 (1) {
["bar_ref"]=>
RECURSION
}
}
}
}and a segfault (apache 1 sapi) or a runaway process (cli sapi).
Jan.
--
http://www.horde.org - The Horde Project
http://www.ammma.de - discover your knowledge
http://www.tip4all.de - Deine private Tippgemeinschaft