break

(PHP 4, PHP 5)

break ends execution of the current for, foreach, while, do-while or switch structure.

break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of.

<?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;
    }
}
?>

Changelog for break
Version Description
5.4.0 break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.
5.4.0 Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.

Коментарии

You can also use break with parentheses: break(1);

Note:
Using more nesting level leads to fatal error:

<?php
 
while (true) {
    foreach ([
123] as $value) {
      echo 
'ok<br>';
      break 
3// Fatal error: Cannot 'break' 3 levels
   
}
    echo 
'jamais exécuter';
    break;
  }
?>
2020-11-07 20:48:20
http://php5.kiev.ua/manual/ru/control-structures.break.html
@ei dot dwaps at gmail dot com

To break more than 2 levels you must have more than 2 structure.
In your example you have 2 structures : while and foreach and you try to break three.

Test with 3 structures and it works ;), example with adding for loop :

<?php

for ($i 0$i 5; ++$i) {
  while (
true) {
    foreach ([
123] as $value) {
      echo 
'ok<br>';
      break 
3// Fatal error: Cannot 'break' 3 levels
   
}
    echo 
'jamais exécuter';
    break;
  }
}
2024-07-24 14:59:31
http://php5.kiev.ua/manual/ru/control-structures.break.html

    Поддержать сайт на родительском проекте КГБ