On 12/09/2019 16:44, Zeev Suraski wrote:
Similarly - adding typed variables - is certainly a future option.  Changing
PHP to require typed variables (without opting in) - is well outside of the
internals@ mandate.

For areas like that - our options are either doing nothing, or providing
opt-in mechanisms to cater to stricter-loving audiences.  I'm all for the
2nd option, but there is no 3rd.


While I am not sure your tone will be well received by your target audience, I just wanted to say I tend to agree.

Breaking BC here does not seem to bring much. If there are cases where enforcing strictness might allow better JIT for example, then I could see the case being made. But simply turning working code into fatally failing code isn't progress.

I know I have a bunch of old stuff running which tends to litter the error logs with notices, and I don't have time to go fix them so I ignore because it's fine and it works.

For new projects, what I do, and what I am pretty sure 99% of the "strict camp" does is essentially boiling down to:

    set_error_handler(function () { throw new \RuntimeException(); });

That's our global strictness flag right there. It's been available for ages. I don't see why we need to take something away from others to make such an easy workaround a little less needed. Especially as I don't imagine we will drop the error handlers. I sure will keep mine around to keep failing warnings etc as hard fatals.

So what do we gain exactly?

Best,
Jordi

--

Jordi Boggiano
@seldaek - https://seld.be

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

Reply via email to