Hi Michal I'had the idea similar to your RFC but instead of using `switch` keyword I think introducing `when` keyword is better. (as I know a language that uses this keyword is Kotlin)
$result = when ($v) { 'foo' => 1, 'bar' => 2, 'x', 'y', 'z' => 3, default => null, }; Above you can see that `when` syntax is more semantic than `switch`. And it is easier to implement in parser because it has no statement/expression ambiguity. But this might not be preferred by BC camps because introducing a new keyword might break BC. And if `switch` is chosen I still think the syntax should be comma separated instead of semicolon separated for consistency with other list expressions (array/function call). $result = switch ($v) { case 'foo' => 1, case 'bar' => 2, case 'x', 'y', 'x' => 3, default => null, }; Cheers On Wed, Oct 16, 2019 at 10:33 AM Michał Brzuchalski < michal.brzuchal...@gmail.com> wrote: > Hi David, > > I'm interested in this feature this is called switch expression and is on > my list of RFC to process after Object Initializer RFC. > > I have an RFC in draft for that and planning to finish it soon together > with some syntax optimisations - you can see it at > https://wiki.php.net/rfc/switch-expression-and-statement-improvement > > Cheers, > Michał Brzuchalski > > śr., 16 paź 2019, 03:46 użytkownik David Rodrigues <david.pro...@gmail.com > > > napisał: > > > Hello. I like to suggests a discussion about a FR to make possible to > > inline switch, as an alternative to nested inline conditionals. > > > > $value = switch (expr()) { > > case A1: return A2; > > case B1: return B2; > > default: return C; > > } > > > > Instead of: > > > > $expr = expr(); > > $value = $expr == A1 ? A2 : ( $expr == B1 ? B2 : C ); > > > > Just a discussion to check what do you think. > > > > -- > > David Rodrigues > > >