résumé Qu'entend-on par un nombre après "break" ou "continue" en PHP?




résumé de cours php (4)

Le nombre dit juste "combien d'étendues à sauter de"

<?php
for($i = 0; $i < 10; ++$i) {
    for($j = 0; $j < 10; ++$j) {
        break 2;
    }
}

$ i et $ j seront 0

Pour citer le manuel:

continue accepte un argument numérique facultatif qui lui indique combien de niveaux de boucles englobantes il doit passer à la fin de.

il en va de même pour la pause.

Quelqu'un pourrait-il expliquer, avec des exemples, ce que l'on entend par loop break 2 ou continue 2 en PHP? Qu'est-ce que cela signifie quand break ou continue est suivi par un nombre?


break: casse la boucle la plus interne (sortie de la boucle)

pause 2: cassez les 2 boucles de niveau d'imbrication (sortie des 2 boucles imbriquées)

continuer: forcer la boucle pour l'itération suivante à partir de l'endroit où elle est utilisée sans exécuter le reste du code de boucle

continuer 2: boucle de force pour l'itération 2 suivante à partir de l'endroit où elle est utilisée sans exécuter le reste du code de boucle

quitte la boucle lorsque nous rencontrons la valeur $array à 5

 break
    $array(4,5,8);
    for ($i=0 ;$i < 10 $i ++)
    {
        if ($array[$i]==5)
        {
          break;
        }
    }

pause (n)

Quittez les deux boucles lorsque nous rencontrons la valeur 5 dans $ array;

for ($i=0 ;$i < 10 $i ++)
  {
    for($j=0; $j <10; $j++)
     {
            if ($array[$i][$j]==5)
            {
              break 2;
            }
     }
 }

continuer

Imprime le message lorsque la valeur est 5;

for($i=0; $i<10; $i++)
{
   if ($array[$i] != 5)
   { 
     continue;// will reach at the first line from here which is for($i=0;.....
   }
   echo 'This is five';
}

}


break accepte un argument numérique facultatif qui lui indique combien de structures englobantes imbriquées doivent être supprimées.

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

Plus d'exemples de pause

continue accepte un argument numérique facultatif qui lui indique combien de niveaux de boucles englobantes il doit passer à la fin de. La valeur par défaut est 1, sautant ainsi à la fin de la boucle actuelle.

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "Middle<br />\n";
        while (1) {
            echo "Inner<br />\n";
            continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}
?>

Plus d'exemples de continuer


$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    break;
  }
  echo $item;
}

sorties "1" parce que la boucle a été rompue pour toujours, avant que l'écho était en mesure d'imprimer "2".

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    continue;
  }
  echo $item;
}

sorties 13 parce que la deuxième itération a été adoptée

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      break 2; // if this was break, o/p will be AB1AB2AB3
    }
    echo $char;
  }
  echo $num;
}

sorties AB cause de la break 2 , ce qui signifie que les deux déclarations ont été rompues assez tôt. Si c'était juste une break , la sortie aurait été AB1AB2AB3 .

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      continue 2;
    }
    echo $char;
  }
  echo $num;
}

sortira ABABAB , à cause de continue 2 : la boucle externe sera passée à chaque fois.

En d'autres termes, continue arrête l'exécution de l'itération en cours, mais en laisse une autre s'exécuter, tandis que la break arrête complètement l'instruction entière.
Donc, nous pouvons dire que continue n'est applicable que pour les boucles, alors que break peut être utilisé dans d'autres instructions, comme switch .

Un nombre représente le nombre d'instructions imbriquées affectées.
S'il y a 2 boucles imbriquées, la break dans la boucle interne va casser la boucle interne (mais cela n'a pas beaucoup de sens car la boucle interne sera relancée dans la prochaine itération de la boucle externe). break 2 dans la boucle intérieure va casser les deux.







continue