Date: 01/05/01
- Next message: cynic <email protected>: "[PHP-DEV] PHP 4.0 Bug #3077 Updated: ASP tags aren't recognized"
- Previous message: sniper <email protected>: "[PHP-DEV] PHP 4.0 Bug #8350 Updated: date function format string makes php crush"
- Next in thread: Cynic: "Re: [PHP-DEV] PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement"
- Maybe reply: Cynic: "Re: [PHP-DEV] PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
ID: 8428
Updated by: zak
Reported By: ocomte <email protected>
Old-Status: Bogus
Status: Open
Old-Bug Type: Unknown/Other Function
Bug Type: Feature/Change Request
Assigned To:
Comments:
The desired behavior is that continue is transparent to switch statements - this behavior would mimic how if handles continue statements.
Previous Comments:
---------------------------------------------------------------------------
[2001-01-05 22:33:45] zak <email protected>
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=$zn";
}
echo "$i=$in";
}
/*
Should output:
$i=0
$i=1
$i=2
$i=3
$i=4
*/
?>
---------------------------------------------------------------------------
[2000-12-26 13:34:59] ocomte <email protected>
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 <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>
- Next message: cynic <email protected>: "[PHP-DEV] PHP 4.0 Bug #3077 Updated: ASP tags aren't recognized"
- Previous message: sniper <email protected>: "[PHP-DEV] PHP 4.0 Bug #8350 Updated: date function format string makes php crush"
- Next in thread: Cynic: "Re: [PHP-DEV] PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement"
- Maybe reply: Cynic: "Re: [PHP-DEV] PHP 4.0 Bug #8428 Updated: continue doesn't pass thru a switch statement"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

