break

(PHP 4, PHP 5)

break прерывает выполнение текущей структуры for, foreach, while, do-while или switch.

break принимает необязательный числовой аргумент, который сообщает ему выполнение какого количества вложенных структур необходимо прервать.

<?php
$arr 
= array('один''два''три''четыре''стоп''пять');
while (list(, 
$val) = each($arr)) {
    if (
$val == 'стоп') {
        break;    
/* Тут можно было написать 'break 1;'. */
    
}
    echo 
"$val<br />\n";
}

/* Использование дополнительного аргумента. */

$i 0;
while (++
$i) {
    switch (
$i) {
    case 
5:
        echo 
"Итерация 5<br />\n";
        break 
1;  /* Выйти только из конструкции switch. */
    
case 10:
        echo 
"Итерация 10; выходим<br />\n";
        break 
2;  /* Выходим из конструкции switch и из цикла while. */
    
default:
        break;
    }
}
?>

История изменений break
Версия Описание
5.4.0 break 0; больше не допускается. В предыдущих версиях это воспринималось точно также как и break 1;.
5.4.0 Удалена возможность передачи переменных (например, $num = 2; break $num;) в виде числового аргумента.

Коментарии

vlad at vlad dot neosurge dot net wrote on 04-Jan-2003 04:21

> Just an insignificant side not: Like in C/C++, it's not 
> necessary to break out of the default part of a switch 
> statement in PHP.

It's not necessary to break out of any case of a switch  statement in PHP, but if you want only one case to be executed, you have do break out of it (even out of the default case).

Consider this:

<?php
$a 
'Apple';
switch (
$a) {
    default:
        echo 
'$a is not an orange<br>';
    case 
'Orange':
        echo 
'$a is an orange';
}
?>

This prints (in PHP 5.0.4 on MS-Windows):
$a is not an orange
$a is an orange

Note that the PHP documentation does not state the default part must be the last case statement.
2005-12-30 08:53:52
http://php5.kiev.ua/manual/ru/control-structures.break.html
Автор:
If you wonder how to end execution of a function (as I did), it's that simple: return

function foo($a) {
 if(!$a) return;
 echo 'true';
 // some other code
}

foo(true) will echo 'true', foo(false) won't echo anything (as return ends execution of the function. Of course, therefore there is no need for 'else' before 'echo').
2007-01-18 08:12:22
http://php5.kiev.ua/manual/ru/control-structures.break.html
Автор:
If the numerical argument is higher than the number of things which can be broken out of, it seems to me like the execution of the entire program is stopped.
My program had 8 nested loops. Didn't bother counting them, but wrote: break 10. - Result: Code following the loops was not processed.
2010-12-17 06:09:46
http://php5.kiev.ua/manual/ru/control-structures.break.html
A break statement that is in the outer part of a program (e.g. not in a control loop) will end the script. This caught me out when I mistakenly had a break in an if statement

i.e.

<?php 
echo "hello";
if (
true) break;
echo 
" world"
?>

will only show "hello"
2012-06-16 15:32:19
http://php5.kiev.ua/manual/ru/control-structures.break.html
Автор:
If you are wondering, break and break() are equivalent:

<?php

 
break(2);

  break 
2;   //same result 

?>
2017-09-07 00:58:57
http://php5.kiev.ua/manual/ru/control-structures.break.html

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