Je suis nouveau sur PHP et j'ai vu le code ci-dessous en ligne. Il a continue 2
et break
ensemble dans switch/case
déclaration. Qu'est-ce que ça veut dire?
foreach ( $elements as &$element ) {
switch ($element['type']) {
case a :
if (condition1)
continue 2;
break;
case b :
if (condition2)
continue 2;
break;
}
// remaining code here, inside loop but outside switch statement
}
Le continue 2
saute directement à l'itération suivante de la structure qui est de deux niveaux en arrière, qui est le foreach
. break
(équivalent à break 1
) termine simplement l'instruction switch
.
Le comportement dans le code que vous avez montré est:
Boucle à travers $elements
. Si un $element
est de type "a" et condition1
est rencontré, ou s'il s'agit du type "b" et condition2
est atteint, passez à la suivante $element
. Sinon, effectuez une action avant de passer à la prochaine $element
.
De PHP.net:continue :
continue accepte un argument numérique facultatif qui lui indique le nombre de niveaux de boucles englobantes qu'il doit ignorer jusqu'à la fin. La valeur par défaut est 1, sautant ainsi à la fin de la boucle actuelle.
PHP continue d'exécuter les instructions jusqu'à la fin du bloc de commutation, ou la première fois qu'il voit une instruction break.
Si vous avez un commutateur à l'intérieur d'une boucle et souhaitez passer à la prochaine itération de la boucle externe, utilisez continue 2.
continue accepte un argument numérique facultatif qui lui indique le nombre de niveaux de boucles englobantes qu'il doit sauter jusqu'à la fin. La valeur par défaut est 1, sautant ainsi à la fin de la boucle actuelle.
Source: http://php.net/manual/en/control-structures.continue.php
continuer et rompre sont similaires en ce sens que cela empêchera quelque chose de se produire.
en cas de poursuite, il arrêtera quoi que ce soit après les accolades mais n'arrêtera pas la boucle. L'instruction switch sort juste de cette instruction et passe à l'instruction suivante.
En cas de rupture, cela arrêtera la boucle entière de continuer, terminez la boucle là.