WeakMap sınıfı

(PHP 8)

Giriş

WeakMap nesneleri anahtar olarak kabul eden bir haritadır (veya sözlüktür). Ancak, SplObjectStorage'dan farklı olarak, WeakMap anahtarındaki nesne, nesnenin gönderim sayısına katkıda bulunmaz. Yani, herhangi bir noktada bir nesneye kalan tek gönderim bir WeakMap anahtarı ise, nesne çöp olarak toplanacak ve WeakMap'ten kaldırılacaktır. Birincil kullanım durumu, nesneden daha uzun yaşaması gerekmeyen bir nesneden türetilen verilerin arabelleklerini oluşturmak içindir.

WeakMap sınıfı ArrayAccess, Iterator ve Countable arayüzlerini gerçekler, bu yüzden çoğu durumda ilişkili bir dizi gibi kullanılabilir.

Sınıf Sözdizimi

final WeakMap implements Countable , ArrayAccess , IteratorAggregate {
/* Yöntemler */
public __construct()
public count(): int
abstract public getIterator(): Traversable
public offsetExists(object $nesne): bool
public offsetGet(object $nesne): mixed
public offsetSet(object $nesne, mixed $değer): void
public offsetUnset(object $girdi): void
}

Örnekler

Örnek 1 - Weakmap kullanım örneği

<?php
$wm 
= new WeakMap();

$o = new StdClass;

class 
{
    public function 
__destruct() {
        echo 
"Öldü!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo 
"Yok ediliyor...\n";
unset(
$o);
echo 
"İşi bitti\n";
var_dump(count($wm));

Yukarıdaki örneğin çıktısı:

int(1)
Yok ediliyor...
Öldü!
İşi bitti
int(0)

İçindekiler

add a note add a note

User Contributed Notes

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