Partial Application
Partial application is the technique of fixing a subset of a function’s arguments in advance, producing a new function of smaller arity that still expects the remaining arguments. It is the operation itself, distinct from its result, which is called a partial function.
Partial application differs from currying: currying always transforms a function into a chain of one-argument functions, while partial application may fix any number of arguments at once and leaves the rest to be supplied together, in a single further call.
PHP has no dedicated syntax for partial application. It is emulated by wrapping the original call inside a closure or an arrow function that captures the already-known arguments, or with Closure::fromCallable() combined with a manual wrapper. First-class callable syntax makes referencing the underlying function easier, but does not perform the application itself.
<?php
function request(string $method, string $url, array $options = []) {
// ...
}
// fixing the first argument ahead of time
$get = fn(string $url, array $options = []) => request('GET', $url, $options);
$get('https://example.com'); // only the remaining arguments are needed
// fixing two arguments at once, unlike currying which would take them one by one
$getExample = fn(array $options = []) => request('GET', 'https://example.com', $options);
?>