} static function staticMethod() { echo "static this!" . PHP_EOL; echo Generic::$property . PHP_EOL; } } $gen = new Generic(); $gen->method(); // another way to instantiate it $generic = "Generic"; $gen2 = new $generic(); $gen2->method(); $gen->checkThis(); Generic::checkThis(); Generic::staticMethod(); echo $gen->same, PHP_EOL, $gen->same(), PHP_EOL; // anonymous functions class Fn { public function __construct() { $this->test = function () { echo "test has been called", PHP_EOL; }; } } $fn = new Fn(); //$fn->test(); // fatal $storedFn = $fn->test; $storedFn();