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

Метод hasItem класса Cache

Метод hasItem класса Cache проверяет, существует ли в кэше элемент с указанным ключом. Первым параметром передаётся ключ элемента в виде строки. Метод возвращает true, если элемент есть в кэше, и false в противном случае.

Метод реализует интерфейс CacheInterface из стандарта PSR-6. Важно понимать, что hasItem не проверяет срок жизни элемента - если элемент просрочен, метод всё равно вернёт false.

Синтаксис

public function hasItem(string $key): bool

Пример

Давайте создадим кэш через ArrayAdapter, сохраним элемент и проверим его наличие:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Cache\Adapter\ArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter(); $item = $cache->getItem('user'); $item->set('abcde'); $cache->save($item); $res = $cache->hasItem('user'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим наличие элемента с ключом, которого нет в кэше:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Cache\Adapter\ArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter(); $res = $cache->hasItem('article'); return new Response(var_export($res, true)); } } ?>

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

false

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Cache\Adapter\ArrayAdapter; class CacheController extends AbstractController { public function index(): Response { $cache = new ArrayAdapter(); $item = $cache->getItem('hello'); $item->set('abcde'); $cache->save($item); $keys = ['hello', 'user', 'article']; $res = []; foreach ($keys as $key) { $res[$key] = $cache->hasItem($key); } return new Response(var_export($res, true)); } } ?>

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

["hello" => true, "user" => false, "article" => false]

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

  • класс Cache,
    который управляет элементами кэша
  • метод getItem,
    который получает элемент кэша по ключу
  • метод save,
    который сохраняет элемент в кэш
  • метод deleteItem,
    который удаляет элемент из кэша по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить