On Sun, Jan 19, 2020 at 10:15 PM Andrea Faulds <a...@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