On Tue, July 8, 2025 at 06:35 Christoph M. Becker wrote:
> On 08.07.2025 at 01:30, Theodore Brown wrote:
>
>> I believe Derick was commenting specifically on using separate <?php ?> tags
>> interleaved around
>> each switch, case, break, and endswitch statement (which there are no plans to deprecate).
>> Based
>> on the follow-up replies from him and Tim, deprecating semicolon-terminated case statements
>> would not affect his xdebug.org site templates.
>
> The use case we're talking about would be something like (indented to
> avoid issues with Newsreaders):
>
> <?switch ($foo):?>
> <?case 1?>
> <p>1</p>
> <?break?>
> <?case 2?>
> <p>2</p>
> <?break?>
> <?endswitch?>
>
> If that code wouldn't trigger a deprecation notice, fine. However, we
> had apparently introduced an inconsistency then.
Hi Christoph,
I implemented the deprecation in a branch in order to test this [1].
That code would emit deprecation notices, and should be fixed by adding a colon
after each case statement, just like is required after the opening switch ($foo).
> Note that I do not advocate writing such code, but I wouldn't be
> surprised if such code exists in the wild, but even more suprised if
> such code would be found in a Composer package.
If such code does exist anywhere, I expect it to be extremely rare, given how
many PHP devs seem to be surprised that the alternative case syntax is even possible.
Certainly this deprecation should be _far_ less impactful than the curly brace
array/string access syntax that was successfully deprecated in PHP 7.4.
Sincerely,
Theodore Brown
[1]: https://github.com/php/php-src/pull/19215