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

Метод lap класса Stopwatch

Метод lap класса Stopwatch позволяет зафиксировать промежуточный отрезок времени внутри уже запущенного события. Секундомер должен быть предварительно запущен методом start. При вызове lap закрывается текущий отрезок и сразу открывается новый, поэтому событие продолжает идти, а в его истории появляется ещё один замер. Метод не принимает параметров и возвращает объект StopwatchEvent текущего события.

Синтаксис

$stopwatch->lap(string $name): StopwatchEvent

Пример

Давайте запустим секундомер, сделаем паузу, поставим промежуточную метку методом lap и посмотрим на количество отрезков:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); usleep(100000); $event = $stopwatch->lap('article'); return new Response(count($event->getPeriods())); } } ?>

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

2

Пример

Давайте поставим несколько промежуточных меток и выведем количество отрезков:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); usleep(100000); $stopwatch->lap('article'); usleep(100000); $stopwatch->lap('article'); usleep(100000); $event = $stopwatch->stop('article'); return new Response(count($event->getPeriods())); } } ?>

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

3

Пример

Давайте сохраним каждую метку в массив и выведем длительность каждого отрезка:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentStopwatchStopwatch; class ArticleController extends AbstractController { public function index(): Response { $stopwatch = new Stopwatch(); $stopwatch->start('article'); $res = []; usleep(100000); $res[] = $stopwatch->lap('article')->getDuration(); usleep(100000); $res[] = $stopwatch->lap('article')->getDuration(); usleep(100000); $res[] = $stopwatch->stop('article')->getDuration(); return new Response(implode(', ', $res)); } } ?>

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

"100, 100, 100"

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

  • класс Stopwatch,
    который измеряет время выполнения участков кода
  • метод start,
    который запускает секундомер
  • метод stop,
    который останавливает секундомер
  • метод isStarted,
    который проверяет, запущен ли секундомер
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить