- var_dump: documentation ( source)
<?php
$__CLASSES = [];
$__CLASSES["Foo"] = [
"vars" => ["bar" => null],
"methods" => [
"__construct" => function(&$this_, $bar) {
$this_["vars"]["bar"] = $bar;
},
"bar" => function(&$this_) {
return $this_["methods"]["foo"]($this_);
},
"foo" => function(&$this_) {
static $bar;
if (!$bar) {
$bar = $this_["vars"]["bar"];
}
return $bar;
}
]
];
function __new($class, ...$args) {
global $__CLASSES;
$object = $__CLASSES[$class];
if (isset($object["methods"]["__construct"])) {
$object["methods"]["__construct"]($object, ...$args);
}
return $object;
}
var_dump(($__temp = __new("Foo", 123))["methods"]["bar"]($__temp));
var_dump(($__temp = __new("Foo", 456))["methods"]["bar"]($__temp));