- in_array: documentation ( source)
- array_keys: documentation ( source)
<?php
class BaseController {
public static function init() {
$r = new ReflectionClass(static::class);
$methods = $r->getMethods(ReflectionMethod::IS_PUBLIC);
$props = array_keys($r->getStaticProperties());
foreach ($methods as $method) {
$prop = $method->name;
if (in_array($prop, $props)) {
static::$$prop = static::class . '@' . $method->name;
}
}
}
}
class UserController extends BaseController {
public static $get;
public function get($id) {
echo "Get: $id";
}
}
UserController::init();
echo UserController::$get;