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

Метод forAll

Метод forAll класса ArrayCollection применяет переданную callback-функцию к каждому элементу коллекции. Первым параметром передаётся замыкание, которое принимает ключ и значение текущего элемента. Метод возвращает true, если callback вернул true для всех элементов, и false - если хотя бы для одного элемента callback вернул false.

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

Синтаксис

public function forAll(Closure $p): bool

Пример

Давайте создадим коллекцию чисел и проверим, что все элементы положительные:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; class ArticleController extends AbstractController { public function index(): Response { $collection = new ArrayCollection([1, 2, 3, 4, 5]); $res = $collection->forAll(function ($key, $value) { return $value > 0; }); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим коллекцию, в которой есть отрицательное число:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; class ArticleController extends AbstractController { public function index(): Response { $collection = new ArrayCollection([1, 2, -3, 4, 5]); $res = $collection->forAll(function ($key, $value) { return $value > 0; }); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте проверим коллекцию сущностей на то, что все они активны:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Doctrine\Common\Collections\ArrayCollection; use App\Entity\Article; class ArticleController extends AbstractController { public function index(): Response { $article1 = new Article(); $article1->setTitle('article 1'); $article1->setActive(true); $article2 = new Article(); $article2->setTitle('article 2'); $article2->setActive(true); $collection = new ArrayCollection([$article1, $article2]); $res = $collection->forAll(function ($key, Article $article) { return $article->isActive() === true; }); return new Response(var_export($res, true)); } } ?>

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

true

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

  • класс ArrayCollection,
    который представляет собой коллекцию элементов
  • метод filter,
    который фильтрует элементы коллекции
  • метод map,
    который применяет функцию к каждому элементу
  • метод exists,
    который проверяет наличие элемента в коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить