public static function bindAndCall(callable $fn, $newThis, $args = [], $bindClass = null) { $func = \Closure::bind($fn, $newThis, $bindClass ?: get_class($newThis)); if ($args) { call_user_func_array($func, $args); } else { $func(); //faster } }