> 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)
Hi Anton, I really like the idea, but I wouldn't have the requirement implicitly bound to the presence and position of a variadic parameter the same way Python does. That kinda feels like a hack and doesn't follow the principle of least consternation. Moreover, what if I don't need a variadic parameter, but would like to declare that the function's interface requires named arguments (because I don't want to be tied to locking parameters to specific positions). So instead I'd propose to implement this using an attribute (e.g. `#[RequireNamedArgs]`) instead. That way, you could even make it so that only specific arguments are required to be named. It's also syntactically backwards compatible, so this feature wouldn't make your code break compatibility with older versions of PHP, and could be made available in older PHP versions using static analysis. Alwin