3v4l.org

run code in 300+ PHP versions simultaneously
<?php $original = new class(12){ public $x; public function __construct($x){ $this->x = $x; } public static function __set_state($state){ return new self($state['x']); } }; $className = get_class($original); $export = var_export($original, true); $export = str_replace($className, "(" . var_export($className, true) . ")", $export); $imported = eval("return {$export};"); echo "// Modified export: \n", $export, "\n\n"; echo "// Original:\n"; var_dump($original); echo "// Imported:\n"; var_dump($imported);
Output for 8.2.0 - 8.2.23, 8.3.0 - 8.3.11
Parse error: syntax error, unexpected token "\", expecting ";" in /in/RXBTu(18) : eval()'d code on line 1
Process exited with code 255.
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.29
// Modified export: ('class@anonymous' . "\0" . '/in/RXBTu:3$0')::__set_state(array( 'x' => 12, )) // Original: object(class@anonymous)#1 (1) { ["x"]=> int(12) } // Imported: object(class@anonymous)#2 (1) { ["x"]=> int(12) }

preferences:
68.31 ms | 407 KiB | 5 Q