<?php
function create_function2($args, $content) {
static $counter = PHP_INT_MAX;
$funcname = "\0lambda_" . (--$counter);
$rawErrorHandler = null;
$rawErrorHandler = set_error_handler(function ($errno, $errstr, $errfile, $errline, $errcontext) use (&$rawErrorHandler) {
var_dump($errno, $errstr, $errfile, $errline, $errcontext);
if ($rawErrorHandler) {
return call_user_func($rawErrorHandler, $errno, $errstr, $errfile, $errline, $errcontext);
} else {
return false;
}
}, E_WARNING);
eval("function {$funcname}({$args}){{$content};}");
restore_error_handler();
return $funcname;
}
$f = create_function2('$a,$b', 'return $a+$b;');
var_dump($f, $f(1,2));
preferences:
34 ms | 402 KiB | 5 Q