@ 2014-02-05T13:14:36Z <?php
class Foo {
protected $prot;
public $pub;
public function init(){
$this->prot = rand(1,9);
$this->pub = rand(1,9);
}
}
function dehydrate($obj){
$class = get_class($obj);
$exp = var_export($obj,1);
return eval('return '.substr($exp,strpos($exp,'(')+1,-1).';');
}
function hydrate($class,$dry=null){
static $hydrators = array();
$h = '_Hydrator__'.$class;
if (empty($hydrators[$class])) {
eval('class '.$h.' extends '.$class.' {
static function __hydrate(array $array) {
$o = new '.$class.'();
foreach ($array as $prop_name => $prop_value) $o->$prop_name = $prop_value;
return $o;
}
}
');
$hydrators[$class] = true;
}
return $dry?$h::__hydrate($dry):null;
}
$a = new Foo();
$a->init();
$dry = dehydrate($a);
hydrate('Foo');
var_dump(
hydrate('Foo',$dry)
);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.4.35 , 5.6.24 , 7.1.2 , 7.2.11 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(6)
}
Output for 5.3.9 , 5.3.26 , 5.4.19 , 5.6.28 , 7.2.10 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(7)
}
Output for 5.3.4 , 5.3.10 , 5.6.32 , 7.0.0 , 7.2.9 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(2)
}
Output for 5.5.24 , 7.0.29 , 7.2.8 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(4)
}
Output for 5.4.20 , 5.4.38 , 7.2.7 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(9)
}
Output for 5.3.3 , 5.4.10 , 5.4.36 , 7.2.6 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(6)
}
Output for 5.6.18 , 7.0.6 , 7.1.20 , 7.2.5 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(7)
}
Output for 5.6.19 , 5.6.30 , 7.2.4 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(7)
}
Output for 5.4.5 , 5.4.7 , 5.6.1 - 5.6.2 , 7.0.24 , 7.1.7 , 7.2.3 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(8)
}
Output for 5.4.40 , 5.5.15 , 7.2.2 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(5)
}
Output for 5.5.35 , 7.0.16 , 7.1.23 , 7.2.1 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(2)
}
Output for 5.4.13 , 5.6.12 , 7.2.0 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(4)
}
Output for 5.6.6 , 7.0.15 , 7.1.6 , 7.1.22 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(2)
}
Output for 5.3.21 , 5.4.21 , 7.1.8 , 7.1.21 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(9)
}
Output for 5.3.24 , 5.6.38 , 7.1.15 , 7.1.19 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(8)
}
Output for 5.5.0 , 7.1.18 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(4)
}
Output for 5.3.28 , 5.6.7 , 7.0.17 , 7.1.17 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(4)
}
Output for 5.4.1 , 5.6.20 , 7.1.16 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(4)
}
Output for 5.4.9 , 5.4.30 , 5.5.17 , 7.0.3 , 7.1.14 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(8)
}
Output for 5.4.31 , 5.5.12 , 7.1.13 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(7)
}
Output for 5.5.7 , 5.5.9 , 5.6.14 , 7.1.12 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(2)
}
Output for 5.4.6 , 5.4.29 , 5.5.10 , 7.1.11 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(7)
}
Output for 5.6.4 , 5.6.25 , 7.1.3 , 7.1.10 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(1)
}
Output for 7.0.19 , 7.1.9 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(3)
}
Output for 5.5.4 , 5.5.26 , 7.1.5 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(5)
}
Output for 5.4.15 , 5.4.17 , 5.4.28 , 5.5.32 , 5.6.8 , 7.1.4 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(1)
}
Output for 5.5.33 , 5.6.35 , 7.1.1 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(5)
}
Output for 5.4.37 , 5.5.6 , 5.5.30 , 5.6.34 , 7.0.31 , 7.1.0 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(1)
}
Output for 5.3.22 , 7.0.11 , 7.0.30 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(7)
}
Output for 5.4.26 , 5.4.33 , 5.6.13 , 7.0.28 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(3)
}
Output for 5.4.41 , 5.6.31 , 7.0.27 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(3)
}
Output for 5.5.22 , 5.6.16 , 7.0.26 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(1)
}
Output for 7.0.25 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(2)
}
Output for 5.4.3 , 5.5.14 , 7.0.12 , 7.0.23 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(9)
}
Output for 5.5.31 , 7.0.22 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(8)
}
Output for 5.4.24 , 5.4.44 , 5.5.3 , 7.0.5 , 7.0.13 , 7.0.21 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(3)
}
Output for 5.5.1 , 5.6.5 , 5.6.11 , 7.0.20 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(1)
}
Output for 5.4.32 , 7.0.18 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(1)
}
Output for 5.3.5 , 5.3.19 , 5.3.23 , 5.4.45 , 5.5.13 , 7.0.14 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(7)
}
Output for 5.3.27 , 5.5.37 , 7.0.10 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(4)
}
Output for 5.6.37 , 7.0.9 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(6)
}
Output for 5.5.23 , 5.5.25 , 7.0.8 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(1)
}
Output for 5.3.11 , 7.0.7 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(2)
}
Output for 5.6.21 , 7.0.4 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(9)
}
Output for 5.3.14 , 5.5.29 , 5.5.38 , 5.6.23 , 5.6.27 , 7.0.2 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(6)
}
Output for 5.3.6 , 5.4.43 , 7.0.1 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(8)
}
Output for 5.3.8 , 5.6.36 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(5)
}
Output for 5.6.17 , 5.6.33 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(9)
}
Output for 5.6.29 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(7)
}
Output for 5.5.8 , 5.6.26 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(5)
}
Output for 5.3.29 , 5.6.22 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(3)
}
Output for 5.3.0 , 5.3.15 , 5.6.15 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(3)
}
Output for 5.6.9 - 5.6.10 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(9)
}
Output for 5.4.27 , 5.4.34 , 5.6.3 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(4)
}
Output for 5.6.0 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(8)
}
Output for 5.5.16 , 5.5.36 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(5)
}
Output for 5.5.27 , 5.5.34 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(6)
}
Output for 5.3.25 , 5.4.14 , 5.5.28 object(Foo)#2 (2) {
["prot":protected]=>
int(8)
["pub"]=>
int(8)
}
Output for 5.5.21 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(9)
}
Output for 5.4.22 , 5.5.20 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(2)
}
Output for 5.4.11 , 5.5.19 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(7)
}
Output for 5.4.2 , 5.4.42 , 5.5.18 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(9)
}
Output for 5.5.11 object(Foo)#2 (2) {
["prot":protected]=>
int(9)
["pub"]=>
int(3)
}
Output for 5.4.12 , 5.4.39 , 5.5.5 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(8)
}
Output for 5.4.18 , 5.5.2 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(8)
}
Output for 5.4.25 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(2)
}
Output for 5.4.23 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(6)
}
Output for 5.3.1 , 5.4.16 object(Foo)#2 (2) {
["prot":protected]=>
int(2)
["pub"]=>
int(3)
}
Output for 5.4.8 object(Foo)#2 (2) {
["prot":protected]=>
int(7)
["pub"]=>
int(3)
}
Output for 5.3.13 , 5.3.20 , 5.4.4 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(2)
}
Output for 5.3.12 , 5.4.0 object(Foo)#2 (2) {
["prot":protected]=>
int(5)
["pub"]=>
int(6)
}
Output for 5.3.7 , 5.3.18 object(Foo)#2 (2) {
["prot":protected]=>
int(6)
["pub"]=>
int(9)
}
Output for 5.3.17 object(Foo)#2 (2) {
["prot":protected]=>
int(4)
["pub"]=>
int(5)
}
Output for 5.3.16 object(Foo)#2 (2) {
["prot":protected]=>
int(3)
["pub"]=>
int(1)
}
Output for 5.3.2 object(Foo)#2 (2) {
["prot":protected]=>
int(1)
["pub"]=>
int(5)
}
Output for 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /in/qbbjH on line 34
Process exited with code 255 . Output for 5.0.0 - 5.0.5 Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /in/qbbjH on line 34
Process exited with code 255 . Output for 4.4.2 - 4.4.9 Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/qbbjH on line 4
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/qbbjH on line 4
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/qbbjH on line 4
Process exited with code 255 . preferences:dark mode live preview
206.09 ms | 401 KiB | 280 Q