<?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));
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- int(123)
int(123)
preferences:
143.84 ms | 408 KiB | 5 Q