Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_compile.c zend_compile.h zend_globals.h zend_language_parser.y /tests break_label01.phpt
break_label02.phpt break_label03.phpt break_label04.phpt break_label05.phpt break_label06.phpt
| From: | Marcus Boerger | Date: | Sat, 04 Mar 2006 10:54:25 +0000 |
| Subject: | Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_compile.c zend_compile.h zend_globals.h zend_language_parser.y /tests break_label01.phpt break_label02.phpt break_label03.phpt break_label04.phpt break_label05.phpt break_label06.phpt |
||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.zend-engine.cvs |
| Request: | Send a blank email to php-zend-engine-cvs+get-4666@lists.php.net to get a copy of this message | ||
Hello Andi,
having seen the syntag of those labeled breaks i also think we should
either forget it completley or do this goto thing even though i clearly
dislike goto.
marcus
Saturday, March 4, 2006, 1:36:10 AM, you wrote:
> At 04:31 PM 3/3/2006, Rasmus Lerdorf wrote:
>>I really don't think labelled breaks at this point is worth this
>>confusion. If this is going to happen, it should be goto-like.
>>Something like this:
>>
>> while() {
>> my_while:
>> ...
>> foreach() {
>> ...
>> break my_while;
>> }
>> }
>>
>>But then we are back to the all-out goto since you should be able to
>>place the labels anywhere you want as long as you are not breaking
>>into a deeper construct and only out of them, either forwards or
>>backwards. And we don't seem to be able to agree on that.
>>
>>And I just re-read your point b) there and see that you said exactly
>>the same thing, so yes, I agree with you. Did the goto patch let
>>you use the label on a break as well?
> Yeah but with the confusing semantics. I saw let's keep it simple.
> Screw labeled breaks/continue. My email was probably confusing but I
> meant we should do both (a) and (b) :)
> We will provide regular goto with the obvious limitation of not
> jumping into deeper constructs (which isn't relevant anyway). So your
> example would work if you do "goto my_while" instead of "break my_while".