diff options
Diffstat (limited to 'it.class')
| -rw-r--r-- | it.class | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -1113,11 +1113,9 @@ static function date($format = "", $stamp = null) # Internal: Convert expression or funcname or function literal to callable static function createfunc($code) { - if ($code instanceof Closure && (new ReflectionFunction($code))->getNumberOfRequiredParameters() == 1) - $code = function($dummy, $v) use ($code) {return $code($v);}; - - if (is_string($code) && it::match('^[\w:]+$', $code) && is_callable($code)) - $code .= '($v)'; + if ($code instanceof Closure && (new ReflectionFunction($code))->getNumberOfRequiredParameters() == 1 || + is_string($code) && it::match('^[\w:]+$', $code) && is_callable($code)) + $code = static fn($dummy, $v) => $code($v); if (!is_callable($func = $code) && !function_exists($func = "_it_map_" . md5($code))) eval("function $func(\$k, \$v) { return $code; }"); # Anonymous functions/closures are slower than this (PHP 7.1) |