РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
20 of 1392 menu

Директива while

Директива while в шаблонизаторе Blade создаёт цикл, который повторяет блок кода, пока переданное условие возвращает true. Условие проверяется перед каждой итерацией. Директива полезна для организации циклов с неизвестным заранее количеством повторений, зависящих от динамических данных.

Синтаксис

@while ($condition) {{-- тело цикла --}} @endwhile

Условие может содержать переменные, переданные в представление, вызовы методов или любые допустимые PHP-выражения.

Пример

Создадим представление, которое выводит числа от 1 до 5, используя директиву while. В контроллере передадим переменную counter, которую будем увеличивать внутри цикла:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $counter = 1; return view('index', ['counter' => $counter]); } } ?>
@while ($counter <= 5) <p>The counter is: {{ $counter }}</p> @php $counter++; @endphp @endwhile

Результат выполнения кода:

<p>The counter is: 1</p> <p>The counter is: 2</p> <p>The counter is: 3</p> <p>The counter is: 4</p> <p>The counter is: 5</p>

Пример

Используем while для перебора элементов массива с помощью функции array_shift, которая извлекает и удаляет первый элемент массива:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $arr = ['a', 'b', 'c', 'd', 'e']; return view('index', ['arr' => $arr]); } } ?>
@while (count($arr) > 0) <p>Element: {{ array_shift($arr) }}</p> @endwhile

Результат выполнения кода:

<p>Element: a</p> <p>Element: b</p> <p>Element: c</p> <p>Element: d</p> <p>Element: e</p>

Пример

Используем while в комбинации с директивой break для принудительного выхода из цикла при достижении определённого условия:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $i = 1; return view('index', ['i' => $i]); } } ?>
@while (true) <p>Iteration: {{ $i }}</p> @if ($i >= 5) @break @endif @php $i++; @endphp @endwhile

Результат выполнения кода:

<p>Iteration: 1</p> <p>Iteration: 2</p> <p>Iteration: 3</p> <p>Iteration: 4</p> <p>Iteration: 5</p>

Смотрите также

  • директива for,
    которая создаёт цикл с заданным количеством итераций
  • директива foreach,
    которая перебирает элементы массива или коллекции
  • директива forelse,
    которая обрабатывает пустые массивы
  • директива break,
    которая прерывает выполнение цикла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить