On Tue, Apr 23, 2019 at 10:43 AM Nikita Popov <nikita....@gmail.com> wrote:

> Hi internals,
>
> I've opened voting on the RFC to deprecate & remove left associative
> ternary without explicit parentheses. The vote ends 2019-05-07:
>
> https://wiki.php.net/rfc/ternary_associativity
>
> The RFC stays as originally proposed: The associativity of the ternary
> will *not* be changed to right-associative in PHP 8, only the
> left-associative use without disambiguating parentheses becomes an error.
>
> Regards,
> Nikita
>

To better judge the BC impact here, I've analyzed the top 1000 composer
packages for this pattern. The results are here:
https://gist.github.com/nikic/b6214f87b0e4a7c6fe26919ac849194f

The tl;dr is that nested ternaries were used a total of 12 times across all
files. 9 of these uses are bugs: A right-associative meaning was intended,
but PHP will interpret left-associatively. 3 uses of the form $a ? $b : $c
?: $d are potentially okay, because the difference between the two
interpretations is small and it's not obvious to me which one is actually
intended.

Nikita

Reply via email to