3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(E_ALL|E_STRICT); class Obj { // Testing $this->a being a dynamic property. public function __construct($a) { $this->a = $a; } public function __wakeup() { for ($i = 0; $i < 10000; $i++) { $this->{'b' . $i} = 42; } } } function main() { $obj = (object)["test" => 'foo']; // object used twice as properties of other objects. $variable = [new Obj($obj), new Obj($obj)]; $serialized = serialize($variable); printf("%s\n", $serialized); $unserialized = unserialize($serialized); echo "Called __unserialize\n"; for ($a = 0; $a < 2; $a++) { for ($i = 0; $i < 10000; $i++) { if ($unserialized[$a]->{'b' . $i} !== 42) { echo "Fail $a b$i\n"; return; } unset($unserialized[$a]->{'b' . $i}); } } var_dump($unserialized); } main();

preferences:
64.09 ms | 402 KiB | 5 Q