Re: [RFC] [VOTE] Replace "Missing argument" warning with"Too few arguments" exception

From: Date: Mon, 06 Jun 2016 13:38:37 +0000
Subject: Re: [RFC] [VOTE] Replace "Missing argument" warning with"Too few arguments" exception
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-93845@lists.php.net to get a copy of this message
Rowan Collins wrote: > On 06/06/2016 08:22, Dmitry Stogov wrote: > >> This mini RFC has been moved to "Voting" state. Voting >> began on Jun 6 and will close on June 16. >> >> You can find the full RFC at: >> https://wiki.php.net/rfc/too_few_args >> >> I encourage everyone to read the RFC and cast your vote towards whichever >> option you feel is the best for the language and the community. > > I don't have a vote, but if I did I would vote against making this > change in a minor release. > > The release process RFC [1] says that for a release such as 7.1 > "Backward compatibility must be kept". This RFC gives no justification > for being an exception to this rule, simply acknowledging that it is a > deliberate break in compatibility. In my opinion it would be good to more explicitly clarify what constitutes an unacceptable BC break. Bug fixes are allowed, but even those sometimes cause a BC break (as a programmer may rely on the buggy behavior). After all, to me it comes down to whether a certain behavior is documented – if it is not documented a user should not rely on it. While I have not been able to find the behavior described in the PHP manual, it is explicitly specified in the PHP language specification[2]: | Otherwise, if the parameter has no corresponding argument and the | parameter does not have a default value, the parameter variable is | non-existent and no corresponding VSlot exists. > It's a shame it didn't make it for 7.0, but in my opinion, this should > now wait for 8.0. I'm afraid I have to agree. > [1] https://wiki.php.net/rfc/releaseprocess [2] <https://github.com/php/php-langspec/blob/PHP-7.0/spec/13-functions.md#user-content-function-definitions> -- Christoph M. Becker

« previous php.internals (#93845) next »