213 | | $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); |
| 214 | |
| 215 | $func = $the_['function']; |
| 216 | |
| 217 | if (!is_callable($func)) { |
| 218 | trigger_error("function '$func' not found or invalid function name", E_USER_WARNING); |
| 219 | continue; |
| 220 | } |
| 221 | |
| 222 | // If it's a string (function) callback, or it's PHP >= 5.4, we can do this much faster for <= 5 args |
| 223 | if (is_string($func) || $func instanceof Closure || version_compare(PHP_VERSION, '5.4.0', 'ge') === true) { |
| 224 | switch ((int) $the_['accepted_args']) { |
| 225 | case 1: |
| 226 | $value = $func($args[1]); |
| 227 | break; |
| 228 | case 2: |
| 229 | $value = $func($args[1], $args[2]); |
| 230 | break; |
| 231 | case 3: |
| 232 | $value = $func($args[1], $args[2], $args[3]); |
| 233 | break; |
| 234 | case 4: |
| 235 | $value = $func($args[1], $args[2], $args[3], $args[4]); |
| 236 | break; |
| 237 | case 5: |
| 238 | $value = $func($args[1], $args[2], $args[3], $args[4], $args[5]); |
| 239 | break; |
| 240 | default: |
| 241 | $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); |
| 242 | } |
| 243 | } else { |
| 244 | $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); |
| 245 | } |