On 14/03/2020 15:57, Mike Schinkel wrote:
What you are looking for are Named Parameters, there have been multiple
RFCs about which have all been more or less abandoned from what I see.
https://wiki.php.net/rfc/namedparameters  (From 2012)
https://wiki.php.net/rfc/named_params  (From 2013)
https://wiki.php.net/rfc/simplified_named_params  (From 2016)
Can anyone summarize why these did not move forward?


Without digging back into the archives, my memory is that points of discussion included:

- The choice of syntax.

- Support for internal functions, which don't declare parameters in the same way. I believe this is now solved, or at least vastly improved, by providing reflection information for internal functions via PHP-syntax stubs (see https://externals.io/message/105851 and https://externals.io/message/105970).

- Handling of inheritance: what happens if a class overrides a base method (or implements an interface method) but uses different parameter names? If all parameters are immediately accessible by name (i.e. no extra opt-in is needed in the definition), there will be a large amount of existing code which would immediately break LSP this way.

- Mixing named and positional parameters in a single function call.

- Handling of variadics, both the function foo(...$args) syntax and the special func_get_args() etc functions

- Behaviour when a non-optional parameter is skipped (all three RFCs predate https://wiki.php.net/rfc/too_few_args)


Regards,

--
Rowan Tommins (né Collins)
[IMSoP]

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to