Hi Iván

> Would be posible for blocks to require a return statement instead of raising 
> an error?

It would be possible for the blocks to return values (though not with
the return keyword). I've created a small prototype a few weeks ago:

```
$result = match ($x) {
    0 => {
        echo 'Foo';
        echo 'Bar';
        'Baz'
    },
    ...
};
```

https://github.com/php/php-src/compare/master...iluuu1994:block-expression
Heavily inspired by Rust:
https://doc.rust-lang.org/reference/expressions/block-expr.html

While this would perfectly solve the problem perfectly it feels a
little foreign in PHP. Either way, this is something that can be
discussed an implemented in a separate RFC.

> Would be feasible for the fallthrought problem to use “continue” when you 
> really want to chain “cases”?

Yes, that would be feasible. I personally just don't see a huge
benefit of fallthrough. If we ever implemented pattern matching it
could become unfeasible again (or at least require additional sanity
checks):

```
match ($value) {
    Foo { foo: $foo } => {
        fallthrough;
    }
    Bar { bar: $bar } => {
        // $bar is unbound
    }
 }
```

Ilija

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to