> it makes it impossible to group several conditions with a single break
In Swift you can group multiple conditions with a comma `,` and in Rust with a
pipe `|`. Here’s how that could look in PHP:
```php
match ($x) {
1, 2: ‘One or two’;
}
```
The only thing you cannot do is this:
```php
switch ($x) {
case 1:
echo “One\n”;
case 2:
echo “Two\n”;
break;
}
```
Meaning you cannot “bleed through” the first case into the second, executing
both in case of `$x` being `1`. This is acceptable IMO because this looks like
a bug even if it’s intended.
> then why can't you use if/elseif instead of making the language more
> complicated?
Because that’s usually the perfect use case for a switch statement.
On 10 Sep 2017, 12:22 +0200, Tony Marston <[email protected]>, wrote:
> wrote in message news:7cd2884a-6606-4c3f-8f95-776fd277878b@Spark...
> >
> > Hi Tony
> >
> > > … you sometimes forget to insert a break statement then that is your
> > > fault.
> >
> > Any bug in your source code is ultimately your fault. But as mentioned
> > before human error is inevitable. You can make it easier for your users to
> > make less mistakes though. Other languages (e.g. Rust or Swift) have
> > implicit breaks in their switch statements. This has been done for a
> > reason, I wouldn’t call this a non-issue.
>
> The problem with implicit breaks is that it makes it impossible to group
> several conditions with a single break. My previous language use implicit
> breaks, and this problem really annoyed me. With PHP I have more control,
> and the fact that I have to insert explicit breaks I do not see as an
> inconvenience.
>
> > > Millions of other programmers have no problem with the switch statement
> >
> > It’s all they know. They don’t complain about null pointers even though it’s
> > inventor calls it his billion-dollar mistake. The customer rarely knows
> > what he truly needs.
>
> They know what they want to achieve, and they have to know which language
> features are available to help them meet their objectives. The fact that
> some language features have turned out to be a big mistake is purely the
> fault of the people who introduced those features. Some programmers complain
> about some languages features even though they are useful features which
> work as advertised as are not deemed to be a mistake - take yourself for
> example who is now complaining about issues with the switch statement.
>
> If what you want to achieve can be done better with a series of if/elseif
> statements than the switch statement, then why can't you use if/elseif
> instead of making the language more complicated?
>
> --
> Tony Marston
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>