Re: Deprecate and remove case-insensitive constants?
| From: | Stanislav Malyshev | Date: | Tue, 12 Sep 2017 19:43:42 +0000 |
| Subject: | Re: Deprecate and remove case-insensitive constants? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-100549@lists.php.net to get a copy of this message | ||
Hi!
> case-insensitive constant. This feature appears to potentially result
> in confusion, and also causes bugs as shown in
> <https://bugs.php.net/74450>. See an example created by
> Nikita to see
> some probably unexpected behavior:
> <https://3v4l.org/L6nCp>.
The latter case probably should be fixed by not allowing second constant
to be defined. If you already have case-insensitive constant, it should
cover all of those.
> Even if these issues could be resolved, I still think allowing both
> case-sensitive and case-insensitive constant identifiers does more harm
> than good, so either case-sensitive or case-insensitive constant
> identifiers should be removed from the language. Since case-sensitive
> constant identifiers are already the default, and HHVM doesn't even
> support case-insensitive identifiers at all, I would suggest to remove
> case-insensitive constant identifiers.
I don't think HHVM not supporting something can be an argument. I'm
worried about TRUE vs. True vs. true though - I've see all of those used
around the code (not tRuE though ;) and breaking that would add a ton of
meaningless work to maintainers without any upside. Same with NULL/null etc.
I am also not convinced those constants are really that bad. I'd
probably be fine with phasing out manual defines for case-insensitives
though. But I'm not sure what purpose it would serve then - the engine
would still have to support it, no?
--
Stas Malyshev
smalyshev@gmail.com