Hi Rowan > Can match arms contain other flow control, such as "return" or "continue"?
Yes and yes. They behave exactly the same as in the switch. This should definitely be described in the RFC. > Can I mix a bare value and a block as arms of the same match, or does the > whole construct need to be in either "expression form" or "statement form"? Yes, you can mix blocks and expressions given you don't use the return value of the whole match expression. > Can I omit the trailing semicolon even in "expression form" Yes. To clarify what's going on here: There's no statement variant of the match expression. PHP already allows using any expression as a statement. https://github.com/php/php-src/blob/422c8390a01ce9b6f612e0183bd0e4500c0608be/Zend/zend_language_parser.y#L446 That's why you can do something like `10 + 20;`. PHP will just discard the result value. The same thing is happening here. The only difference is that I added a rule to the grammar to allow dropping the semicolon in this case because I noticed that I kept forgetting to add it in my tests. > We can always add statement blocks in later I think we'll never completely agree on this point, and that's fine. As mentioned in my announcement IMO it doesn't make sense criticizing the switch statement but then not offering an alternative. Thanks for your input! Ilija -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php