I am new to PHP and saw the code below online. It has continue 2
and break
together in switch/case
statement. What does it mean?
continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. The default value is 1, thus skipping to the end of the current loop.
Source: http://php.net/manual/en/control-structures.continue.php
The continue 2
skips directly to the next iteration of the structure that is two levels back, which is the foreach
. The break
(equivalent to break 1
) just ends the switch
statement.
The behavior in the code you've shown is:
Loop through $elements
. If an $element
is type "a" and condition1
is met, or if it's type "b" and condition2
is met, skip to the next $element
. Otherwise, perform some action before moving to the next $element
.
From PHP.net:continue:
continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. The default value is 1, thus skipping to the end of the current loop.
From PHP.net:switch
PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement.
If you have a switch inside a loop and wish to continue to the next iteration of the outer loop, use continue 2.