<?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