Re: [RFC] Named parameters

From: Date: Sun, 29 Mar 2015 17:32:35 +0000
Subject: Re: [RFC] Named parameters
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-85530@lists.php.net to get a copy of this message
> On 29 Mar 2015, at 17:56, Dan Ackroyd <danack@basereality.com> wrote: > > On 29 March 2015 at 12:28, Gints Murans <gm@gm.lv> wrote: > >> What happened to this RFC? This is a really great idea for php. > > The 'Skip Params' RFC (https://wiki.php.net/rfc/skipparams) went to > vote and was declined. "Named params" sounds a lot better idea instead of "Skip Params". I would also vote "no" for the later one. > The 'named params' RFC (https://wiki.php.net/rfc/named_params) author > has been working on stuff they feel is more important. Sad. :( I don't know C that well to be able to help out. >> Reading over some old code, this way it would be a lot easier to understand what that >> second parameter boolean = true is: > > You can do this right now, if you want to: > > getIdByTitle('sample', $insert = true); This is fundamentally wrong, this way a local variable is created and is really not a solution for named parameters, and parameter skipping, just a workaround to fool my self. :) >> About syntax: $insert => true seems kind of confusing: >> $insert = true; >> getIdByTitle('sample', $insert => $insert) > > You shouldn't need it for the case where you're actually already using > a parameter e.g. getIdByTitle('sample', $insert); > already indicates > what the parameter is. The only place where you could argue this > syntax is needed is when you're passing in just a bare 'true' which > has no syntactic meaning associated with it. That was only one example, how about: getIdByTitle('sample', $insert => empty($somethingElse));, its still confusing and for newcomers would be hard to understand, because $insert isn't a variable, but the function's parameter. Unless we look at it like we are setting function's parameters as variables, but then it shouldn't have array element assignment operator (=>). Although getIdByTitle('sample', $insert = true); would most probably conflict with variable assignment functionality, i.e. create local variables, which shouldn't happen in case of named parameters. Anyway my preference would be getIdByTitle('sample', insert: true, type: 'x', description: 'Something'); > > That syntax works for all versions of PHP, so I guess a new syntax > that achieves the same thing is unlikely to be that popular an idea. Well thanks for pointing it out, but this is really a good feature and I hope i will be accepted sooner than later. > > cheers > Dan

« previous php.internals (#85530) next »