Conditions | 2 |
Paths | 1 |
Total Lines | 17 |
Code Lines | 9 |
Lines | 0 |
Ratio | 0 % |
Tests | 8 |
CRAP Score | 2 |
1 | <?php |
||
12 | function curry($fn) |
||
13 | { |
||
14 | 22 | $args = tail(func_get_args()); |
|
15 | 22 | $params = (new \ReflectionFunction($fn))->getNumberOfRequiredParameters(); |
|
16 | |||
17 | return function () use ($fn, $args, $params) { |
||
18 | 22 | $args = array_merge($args, func_get_args()); |
|
19 | |||
20 | 22 | if ($params > count($args)) { |
|
21 | 13 | array_unshift($args, $fn); |
|
22 | |||
23 | 13 | return call_user_func_array(__NAMESPACE__.'\curry', $args); |
|
24 | } |
||
25 | |||
26 | 22 | return call_user_func_array($fn, $args); |
|
27 | 22 | }; |
|
28 | } |
||
29 |