<?php
class Test implements Serializable {
public $member, $message;
function __construct($message) {
$this->message = $message;
}
function serialize() {
return serialize(array($this->message, $this->member));
}
function unserialize($serialized) {
list($this->message, $this->member) = unserialize($serialized);
}
}
$constructed = new Test("original");
$constructed->member = $constructed; //References to self (in this example pointless, but technically legal)
var_dump($constructed);
$transported = unserialize(serialize($constructed)); // Segmentation fault.
Deprecated: Test implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /in/V6j1C on line 2
object(Test)#1 (2) {
["member"]=>
*RECURSION*
["message"]=>
string(8) "original"
}