<?php $sum = function ($a, $b) { return $a + $b; }; function calc($value_or_function) { static $buffer = []; if (is_callable($value_or_function)) { if (count($buffer) === 0) { throw new \InvalidArgumentException('Not enough parameters.'); } $result = array_reduce(array_slice($buffer, 1), static function ($result, $item) use ($value_or_function) { return $value_or_function($result, $item); }, $buffer[0]); $buffer = []; return $result; } $buffer[] = $value_or_function; return __FUNCTION__; } echo calc(5)(4)(3)($sum), PHP_EOL; echo calc(5)(2)(2)('pow');
You have javascript disabled. You will not be able to edit any code.