@@ -55,16 +55,20 @@ discard block |
||
55 | 55 | public static function createLambda ($closure, $closureArgs, $default = null) |
56 | 56 | { |
57 | 57 | if ($closure === null) { |
58 | - if ($default === null) |
|
59 | - throw new \InvalidArgumentException(self::ERROR_CLOSURE_NULL); |
|
58 | + if ($default === null) { |
|
59 | + throw new \InvalidArgumentException(self::ERROR_CLOSURE_NULL); |
|
60 | + } |
|
60 | 61 | return $default; |
61 | 62 | } |
62 | - if ($closure instanceof \Closure) |
|
63 | - return $closure; |
|
64 | - if (is_string($closure) && ($function = self::createLambdaFromString($closure, $closureArgs))) |
|
65 | - return $function; |
|
66 | - if (is_callable($closure)) |
|
67 | - return $closure; |
|
63 | + if ($closure instanceof \Closure) { |
|
64 | + return $closure; |
|
65 | + } |
|
66 | + if (is_string($closure) && ($function = self::createLambdaFromString($closure, $closureArgs))) { |
|
67 | + return $function; |
|
68 | + } |
|
69 | + if (is_callable($closure)) { |
|
70 | + return $closure; |
|
71 | + } |
|
68 | 72 | throw new \InvalidArgumentException(self::ERROR_CLOSURE_NOT_CALLABLE); |
69 | 73 | } |
70 | 74 | |
@@ -82,8 +86,7 @@ discard block |
||
82 | 86 | if ($closure === null) { |
83 | 87 | $isReversed = false; |
84 | 88 | return $sortOrder === SORT_DESC ? Functions::$compareStrictReversed : Functions::$compareStrict; |
85 | - } |
|
86 | - elseif (is_int($closure)) { |
|
89 | + } elseif (is_int($closure)) { |
|
87 | 90 | switch ($closure) { |
88 | 91 | case SORT_REGULAR: |
89 | 92 | return Functions::$compareStrict; |
@@ -115,14 +118,16 @@ discard block |
||
115 | 118 | */ |
116 | 119 | public static function lambdaToSortFlagsAndOrder ($closure, &$sortOrder) |
117 | 120 | { |
118 | - if ($sortOrder !== SORT_ASC && $sortOrder !== SORT_DESC) |
|
119 | - $sortOrder = $sortOrder ? SORT_DESC : SORT_ASC; |
|
120 | - if (is_int($closure)) |
|
121 | - return $closure; |
|
122 | - elseif (($closure === null || is_string($closure)) && isset(self::$compareFunctionToSortFlags[$closure])) |
|
123 | - return self::$compareFunctionToSortFlags[$closure]; |
|
124 | - else |
|
125 | - return null; |
|
121 | + if ($sortOrder !== SORT_ASC && $sortOrder !== SORT_DESC) { |
|
122 | + $sortOrder = $sortOrder ? SORT_DESC : SORT_ASC; |
|
123 | + } |
|
124 | + if (is_int($closure)) { |
|
125 | + return $closure; |
|
126 | + } elseif (($closure === null || is_string($closure)) && isset(self::$compareFunctionToSortFlags[$closure])) { |
|
127 | + return self::$compareFunctionToSortFlags[$closure]; |
|
128 | + } else { |
|
129 | + return null; |
|
130 | + } |
|
126 | 131 | } |
127 | 132 | |
128 | 133 | /** |
@@ -136,23 +141,25 @@ discard block |
||
136 | 141 | { |
137 | 142 | $posDollar = strpos($closure, '$'); |
138 | 143 | if ($posDollar !== false) { |
139 | - if (isset(self::$lambdaCache[$closure][$closureArgs])) |
|
140 | - return self::$lambdaCache[$closure][$closureArgs]; |
|
144 | + if (isset(self::$lambdaCache[$closure][$closureArgs])) { |
|
145 | + return self::$lambdaCache[$closure][$closureArgs]; |
|
146 | + } |
|
141 | 147 | $posArrow = strpos($closure, '==>', $posDollar); |
142 | 148 | if ($posArrow !== false) { |
143 | 149 | $args = trim(substr($closure, 0, $posArrow), "() \r\n\t"); |
144 | 150 | $code = substr($closure, $posArrow + 3); |
145 | - } |
|
146 | - else { |
|
151 | + } else { |
|
147 | 152 | $args = '$' . str_replace(',', '=null,$', $closureArgs) . '=null'; |
148 | 153 | $code = $closure; |
149 | 154 | } |
150 | 155 | $code = trim($code, " \r\n\t"); |
151 | - if (strlen($code) > 0 && $code[0] != '{') |
|
152 | - $code = "return {$code};"; |
|
156 | + if (strlen($code) > 0 && $code[0] != '{') { |
|
157 | + $code = "return {$code};"; |
|
158 | + } |
|
153 | 159 | $fun = eval("return function($args) { $code };"); |
154 | - if (!$fun) |
|
155 | - throw new \InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA); |
|
160 | + if (!$fun) { |
|
161 | + throw new \InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA); |
|
162 | + } |
|
156 | 163 | self::$lambdaCache[$closure][$closureArgs] = $fun; |
157 | 164 | return $fun; |
158 | 165 | } |