On Mon, Jun 28, 2021 at 7:21 PM Craig Francis <cr...@craigfrancis.co.uk> wrote:
> There’s an awkward hitch with removing integer support. Correct me if I'm wrong, but all those inconsistencies would happen even if all integers were considered literal, e.g. https://3v4l.org/C9YpE/vld#output clearly performed compile-time concatenation with a float. > Now these aren’t security issues, and it doesn’t work the other way round: > `is_literal()` doesn't incorrectly report any user (non-literal) data as a > literal. I'd say it's fine that way. > OPcache adds its own similar twist if it’s enabled, but with the added fun > that unlike PHP’s own optimisation processes, OPcache is by its nature > inconsistent when it runs, changing what it optimises and when based on a > number of factors (e.g. available memory) and so isn’t guaranteed to > optimise the code every time. Now that's a problem. If the same code produces different results for expression literalness depending on external factors like available memory it may pass in the test environment, but fail in production. -- Best regards, Bruce Weirdan mailto:weir...@gmail.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php