YaLinqo\Utils::createLambdaFromString PHP Method

createLambdaFromString() private static method

Convert string lambda to callable function.
private static createLambdaFromString ( string $closure, string $closureArgs ) : string | null
$closure string
$closureArgs string
return string | null
    private static function createLambdaFromString($closure, $closureArgs)
    {
        $posDollar = strpos($closure, '$');
        if ($posDollar !== false) {
            if (isset(self::$lambdaCache[$closure][$closureArgs])) {
                return self::$lambdaCache[$closure][$closureArgs];
            }
            $posArrow = strpos($closure, '==>', $posDollar);
            if ($posArrow !== false) {
                $args = trim(substr($closure, 0, $posArrow), "() \r\n\t");
                $code = substr($closure, $posArrow + 3);
            } else {
                $args = '$' . str_replace(',', '=null,$', $closureArgs) . '=null';
                $code = $closure;
            }
            $code = trim($code, " \r\n\t");
            if (strlen($code) > 0 && $code[0] != '{') {
                $code = "return {$code};";
            }
            $fun = create_function($args, $code);
            if (!$fun) {
                throw new \InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA);
            }
            self::$lambdaCache[$closure][$closureArgs] = $fun;
            return $fun;
        }
        return null;
    }