public static function stcompute(array $values) { $count = 0; $callback = function ($p1, $p2) use(&$count, $values) { echo "Inside method >>" . __METHOD__ . "<<\n"; // called D::{closure} ++$count; }; echo "--\n"; var_dump(gettype($callback)); echo "--\n"; var_dump($callback); echo "--\n"; var_dump($callback instanceof Closure); echo "--\n"; $callback(1, 2, 3); echo "\$count = {$count}\n"; $callback(5, 6, 7); echo "\$count = {$count}\n"; } } $d1 = new D(); $d1->compute(["red" => 3, 10]); echo "----------------- using a use clause, #3 (static method) ----------------------\n"; D::stcompute(["red" => 3, 10]); echo "----------------- Misc. Stuff ----------------------\n"; //(function () { echo "Hi\n"; })(); // ca't use an anon function directly with () $v = function () { echo "Hi\n"; }; $v();