Hi everyone,
Looking [RFC] Clone with v2, especially Larry's message
(https://externals.io/message/127353#127399) I'm thinking that it might be a good idea to allow forcing function calls to use named arguments.
Python has it by defining arguments after the variadic argument:
https://peps.python.org/pep-3102/
def compare(a, b, *v, key=None):
...
Since PHP named args work similarly, borrowing syntax makes sense. It would look like
function f(Type $pos1, Type $pos2, ...$v, Type $named1, Type $named2)
or without the variadic
function f(Type $pos1, Type $pos2, ..., Type $named1, Type $named2)
The scope is highly configurable functions and options objects:
function json_encode(
mixed $value,
...,
int $depth = 512,
// arguments instead of constants
// easier for the code completion
// and call strictness
bool $hexTag = false,
// arguments can be grouped by meaning
// and new ones can be inserted into the middle
// without breaking compatibility
bool $hexAmp = false,
// options can have values
string $indent = ' ',
// ...
): string {
// ...
}
P.S. I'm just planting an idea for now, unlikely that I'm able to develop it