International PHP Conference 2019 - Spring Edition

Класс WeakMap

(PECL weakref >= 0.2.0)

Введение

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

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

Примеры

Пример #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 — Проверяет, укзывает ли текущий итератор на действительное значение
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top