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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to