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

Reply via email to