| 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 | } |