Директива continue
Директива continue в Blade позволяет прервать выполнение текущей итерации цикла и перейти к следующей. Она работает внутри директив foreach, for и while. В отличие от break, которая полностью завершает цикл, continue только пропускает одну итерацию.
Директива может принимать необязательный параметр - числовое значение, указывающее, сколько уровней вложенных циклов следует пропустить. Если параметр не указан, пропускается только текущая итерация текущего цикла.
Синтаксис
@continue
@continue($condition)
@continue($condition, $levels)
Пример
Выведем числа от 1 до 5, пропуская число 3 с помощью директивы continue:
@php
$arr = [1, 2, 3, 4, 5];
@endphp
<ul>
@foreach ($arr as $num)
@continue($num == 3)
<li>{{ $num }}</li>
@endforeach
</ul>
Результат выполнения кода:
<ul>
<li>1</li>
<li>2</li>
<li>4</li>
<li>5</li>
</ul>
Пример
Используем директиву continue для пропуска чётных чисел в цикле for:
<ul>
@for ($i = 1; $i <= 10; $i++)
@continue($i % 2 == 0)
<li>{{ $i }}</li>
@endfor
</ul>
Результат выполнения кода:
<ul>
<li>1</li>
<li>3</li>
<li>5</li>
<li>7</li>
<li>9</li>
</ul>
Пример
Пропустим итерацию во вложенном цикле с помощью параметра continue, указывающего уровень вложенности:
@php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
@endphp
<ul>
@foreach ($matrix as $row)
@foreach ($row as $num)
@continue($num % 2 == 0, 2)
<li>{{ $num }}</li>
@endforeach
@endforeach
</ul>
Результат выполнения кода:
<ul>
<li>1</li>
<li>3</li>
<li>5</li>
<li>7</li>
<li>9</li>
</ul>
Пример
Используем continue в цикле while для пропуска определённых значений:
@php
$arr = ['a', 'b', 'c', 'd', 'e'];
$i = 0;
@endphp
<ul>
@while ($i < count($arr))
@php $letter = $arr[$i]; @endphp
@continue($letter == 'c')
<li>{{ $letter }}</li>
@php $i++; @endphp
@endwhile
</ul>
Результат выполнения кода:
<ul>
<li>a</li>
<li>b</li>
<li>d</li>
<li>e</li>
</ul>