SplObjectStorage::attach
(PHP 5 >= 5.1.0, PHP 7)
SplObjectStorage::attach — Добавляет объект в контейнер
Описание
Добавляет объект object в контейнер и дополнительно может ассоциировать этот объект с какими-то данными.
Список параметров
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования SplObjectStorage::attach()
<?php
$o1 = new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // то же, что и $s[$o1] = NULL;
$s->attach($o2, "hello"); // то же, что и $s[$o2] = "hello";
var_dump($s[$o1]);
var_dump($s[$o2]);
?>
Результатом выполнения данного примера будет что-то подобное:
NULL string(5) "hello"
Список изменений
Версия | Описание |
---|---|
5.3.0 |
Добавлен аргумент data .
|
Смотрите также
- SplObjectStorage::detach() - Удаляет объект object из контейнера
- SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
- 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() - Определяет, допустимо ли текущее значение итератора
Коментарии
Better way (imho) is to call:
$storage->removeAll($storage);
Especially, that sometimes (had no time to investigate) removeAllExcept(new SplObjectStorage()) leaves some elements.