<?php
$fn = function () { return get_called_class(); };
var_dump((new ReflectionFunction($fn))->getClosureScopeClass());
class C {
private static $test = 'In class C';
public static function s_fn() {
$fn1 = function () { var_dump(D::$test); };
$fn2 = function () { var_dump(static::$test); };
return array($fn1, $fn2);
}
}
class D extends C {
private static $test = 'In class D';
}
foreach (D::s_fn() as $f) $f();
NULL
Fatal error: Uncaught Error: Cannot access private property D::$test in /in/vmTob:9
Stack trace:
#0 /in/vmTob(19): C::{closure}()
#1 {main}
thrown in /in/vmTob on line 9
Process exited with code 255.