Composing function calls in PHP
Here's a diff example (before and after):
- $h($g($f($x)))
+ compose($h, $g, $f)(x);
More on Functional composition - Wikipedia.
composer require srph/compose
PHP >=5.4
is supported.
$square = function($n) {
return $n * $n;
}
$pow = function($exponent) {
return function($n) use ($exponent) {
for (;$exponent--;) {
$n .= $n;
}
return $n;
}
}
$input = 2;
$f = compose($square, $pow(3), $square);
$f($input); // 4096
You may pass an infinite number of functions to compose(...fn): Closure
.