SplObjectStorage::removeAllExcept
(PHP 5 >= 5.3.6, PHP 7)
SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
Описание
Удаляет из текущего контейнера все объекты, которых нет в другом контейнере.
Список параметров
-
storage
-
Контейнер содержащий элементы, которые должны остаться в текущем контейнере.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования SplObjectStorage::removeAllExcept()
<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';
$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);
$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);
$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>
Результатом выполнения данного примера будет что-то подобное:
bool(false) bool(true)
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Структуры данных
- Функция SplObjectStorage::addAll() - Добавляет все объекты из другого контейнера
- Функция SplObjectStorage::attach() - Добавляет объект в контейнер
- Функция SplObjectStorage::contains() - Проверяет, содержит ли контейнер заданный объект
- Функция SplObjectStorage::count() - Возвращает количество объектов в контейнере
- Функция SplObjectStorage::current() - Возвращает текущий объект
- Функция SplObjectStorage::detach() - Удаляет объект object из контейнера
- Функция SplObjectStorage::getHash() - Вычисляет уникальный идентификатор для объектов контейнера
- Функция SplObjectStorage::getInfo() - Возвращает данные ассоциированные с текущим объектом
- Функция SplObjectStorage::key() - Возвращает индекс текущего положения итератора
- Функция SplObjectStorage::next() - Переход к следующему объекту
- Функция SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере
- Функция SplObjectStorage::offsetGet() - Возвращает данные ассоциированные с объектом object
- Функция SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
- Функция SplObjectStorage::offsetUnset() - Удаляет объект из контейнера
- Функция SplObjectStorage::removeAll() - Удаляет из текущего контейнера объекты, которые есть в другом контейнере
- Функция SplObjectStorage::removeAllExcept() - Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
- Функция SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
- Функция SplObjectStorage::serialize() - Сериализует контейнер
- Функция SplObjectStorage::setInfo() - Ассоциирует данные с текущим объектом контейнера
- Функция SplObjectStorage::unserialize() - Восстанавливает сериализованый контейнер из строки
- Функция SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
Коментарии
You may remove all elements by passing empty SplObjectStorage
$splStorage->removeAllExcept(new SplObjectStorage());
The example Kirk provided is not the best option, there's a method "removeAll" that you can pass the SplObjectStore itself, and as the name says, remove all stored objects.