Re: 'switch-expression' and the 'type guard' unary operator demo
| From: | Kosit Supanyo | Date: | Mon, 21 Oct 2019 03:11:36 +0000 |
| Subject: | Re: 'switch-expression' and the 'type guard' unary operator demo | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-107596@lists.php.net to get a copy of this message | ||
Hi Mike
> Ok, so let's look at a scenario. Will we be able to do this in the future,
> if we decide to allow multiple expressions to result in a final value?
> $y = switch ($x) {
> case 1 => $arr = get_array(), array_pop($arr),
> case -1 => $arr = get_array(), array_unshift($arr),
> default => null,
> };
As I told you in previous reply, I'm working on block-expressions as well.
So if PHP has block-expressions you can do the same this way:
$y = switch ($x) {
case 1 => eval {
$arr = get_array();
give array_pop($arr);
},
case -1 => eval {
$arr = get_array();
give array_shift($arr);
},
default => null,
};
Which is obviously cleaner and more powerful.
Are you saying it is literally impossible given the current engine, or just
> that it has not been done with
break,
> continue or goto?
Yes, it is impossible to break out of an ongoing function call without
exceptions.
Your response makes me think you are responding in anger? I am not arguing
> in anger myself, so I hope that I am not causing you to reply in anger? I
> am merely asking posing technical challenges in hopes to ensure that PHP is
> the best it can be. I assume we all want that?
No, I was not angry. Just a little bit tired. I appologize making you feel
that way.
Regards