Re: PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement
| From: | Cynic | Date: | Sat, 06 Jan 2001 03:52:33 +0000 |
| Subject: | Re: PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-43105@lists.php.net to get a copy of this message | ||
zak,
the problem is if != switch in this context.
see http://marc.theaimsgroup.com/?l=php-dev&m=97875059607513&w=2
At 04:33 6.1. 2001, zak@php.net wrote the following:
--------------------------------------------------------------
>ID: 8428
>Updated by: zak
>Reported By: ocomte@guarantycity.com
>Old-Status: Open
>Status: Bogus
>Bug Type: Unknown/Other Function
>Assigned To:
>Comments:
>
>The switch statement is a flow control construct - like for or if. Because of this continue
>behaves within switch like it should in any flow control contruct - it skips to the next loop of the
>construct. However, switch does not loop - so continue behaves like break.
>
>If you would like to use a continue embedded in a switch statement to continue past a loop in an
>outside control construct, specify how many levels you would like continue to break out of.
>
>Try these examples to see what I mean:
>
><pre>
><?php
> for ($i=0; $i<5; ++$i)
> {
> switch(1)
> {
> case 1:
> continue 2;
> break;
> }
>
> echo "Should be skipped";
> }
>
> // Should not output anything
>
> for ($i=0; $i<5; ++$i)
> {
> for ($z=10; $z>5; --$z)
> {
> switch(1)
> {
> case 1:
> continue 2;
> break;
> }
> echo "\$z=$z\n";
> }
> echo "\$i=$i\n";
> }
>
> /*
> Should output:
> $i=0
> $i=1
> $i=2
> $i=3
> $i=4
> */
>?>
>
>
>
>
>Previous Comments:
>---------------------------------------------------------------------------
>
>[2000-12-26 13:34:59] ocomte@guarantycity.com
>in the script :
><?
> for($i=0; $i<5; ++$i)
> { switch(1)
> { case 1:
> continue;
> }
> echo "Not printable";
> }
>?>
>
>the string is printed 5 times because the continue statement end the switch (like break). In C
>and C++, and in the PHP manual the continue (unlike break) isn't affected by surrounding switch
>statement and it seems logical to me.
>
>
>---------------------------------------------------------------------------
>
>
>Full Bug description available at: http://bugs.php.net/?id=8428
>
>
>--
>PHP Development Mailing List <http://www.php.net/>
>To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
>For additional commands, e-mail: php-dev-help@lists.php.net
>To contact the list administrators, e-mail: php-list-admin@lists.php.net
------end of quote------
____________________________________________________________
Cynic:
A member of a group of ancient Greek philosophers who taught
that virtue constitutes happiness and that self control is
the essential part of virtue.
cynic@mail.cz