Инструкција continue у PHP-у
Поред инструкције break, која завршава
рад петље, постоји и инструкција
continue, која покреће нову итерацију
петље. Ова инструкција понекад може бити
корисна за поједностављивање кода, иако се
задатак готово увек може решити и без ње. Хајде да
погледамо на практичном примеру.
Претпоставимо да имамо низ са бројевима. Хајде да
га пређемо петљом и бројеве који су дељиви
са 2, подигнемо на квадрат и испишемо
на екран, а бројеве који су дељиви са 3,
подигнемо на куб и испишемо на екран.
Ево решења описане задаће:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
echo $res;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
echo $res;
}
}
?>
Као што видите, линија echo $res
се понавља два пута. Извадимо је
ван if, овако:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
}
echo $res; // избацили смо испис ван услова
}
?>
Међутим, сада наш скрипт ради помало
другачије: испоставиће се да ће и за обичне елементе,
који нису обрађени кроз наш if, бити
извршен испис променљиве $res
на екран, што према условима наше задаће није
потребно.
Решимо проблем додавањем нашем if-у
још једног услова else, који ће се активирати
за елементе који нису дељиви са 2 и
3, и позваћемо тамо инструкцију continue,
која ће нас одмах пребацивати
на нову итерацију петље:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
} else {
continue; // прелазимо на нову итерацију петље
}
echo $res; // извршиће се ако је дељив са 2 или 3
}
?>
Напишите петљу која исписује само
парне бројеве од 1 до 100,
прескачући непарне помоћу continue.