Re: Re: Warn when declaring required parameter after optional one
| From: | Nikita Popov | Date: | Wed, 05 Feb 2020 09:49:38 +0000 |
| Subject: | Re: Re: Warn when declaring required parameter after optional one | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-108404@lists.php.net to get a copy of this message | ||
On Sun, Jan 19, 2020 at 10:15 PM Andrea Faulds <ajf@ajf.me> wrote:
> Hi Nikita,
>
> Nikita Popov wrote:
> >
> > Since nullable types have been available since PHP 7.1, having a required
> > parameter after an optional one is increasingly likely a bug rather than
> an
> > intentional workaround, so I think it would be good to throw a warning
> for
> > this case.
> >
> Wouldn't it be trivial to special-case
= NULL here to not
> cause a
> warning, or to cause an E_NOTICE instead of an E_WARNING? That would
> make this less annoying for old code. I don't know whether I think this
> worth doing or not, I just want to point out the possibility.
>
I like this idea and have updated the pull request to ignore the "Type
$param = null" case, so the deprecation should now just catch the
"definitely" incorrect signatures.
So to summarize the current state:
function test($foo = "bar", $baz) {}
// Deprecated: Required parameter $baz follows optional parameter $foo
function test(Abc $foo = null, $baz) {}
// No warnings, works fine!
With that adjustment made, are there any further concerns about this change?
Regards,
Nikita