Класс WeakMap

(PECL weakref >= 0.2.0)

Введение

Обзор классов

WeakMap implements Countable , ArrayAccess , Iterator {
/* Методы */
public __construct ( )
public count ( ) : int
public current ( ) : mixed
public key ( ) : object
public next ( ) : void
public offsetExists ( object $object ) : bool
public offsetGet ( object $object ) : mixed
public offsetSet ( object $object , mixed $value ) : void
public offsetUnset ( object $object ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Примеры

Пример #1 Пример использования Weakmap

<?php
$wm 
= new WeakMap();

$o = new StdClass;

class 
{
    public function 
__destruct() {
        echo 
"Уничтожение объекта!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo 
"Удаление...\n";
unset(
$o);
echo 
"Готово\n";
var_dump(count($wm));

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

int(1)
Удаление...
Уничтожение объекта!
Готово
int(0)

Содержание

  • WeakMap::__construct — Создает новую карту ссылок
  • WeakMap::count — Количество актуальных ссылок в карте
  • WeakMap::current — Возвращает текущее значение относительно внутреннего итератора
  • WeakMap::key — Возвращает текущий ключ относительно внутреннего итератора
  • WeakMap::next — Следующий элемент в карте ссылок
  • WeakMap::offsetExists — Проверяет, присутствует ли переданный объект в карте
  • WeakMap::offsetGet — Возвращает значение, на которое указывает переданный объект
  • WeakMap::offsetSet — Добавляет новую пару ключ-значение в карту
  • WeakMap::offsetUnset — Удалить запись из карты
  • WeakMap::rewind — Возвращает указатель итератора на начало карты
  • WeakMap::valid — Проверяет, укзывает ли текущий итератор на действительное значение