WEAKMAP(3) 1 WEAKMAP(3)The WeakMap classINTRODUCTION CLASS SYNOPSIS
WeakMap
WeakMapCountableArrayAccessIterator
Methods
o public WeakMap::__construct (void )
o public int WeakMap::count (void )
o public mixed WeakMap::current (void )
o public object WeakMap::key (void )
o public void WeakMap::next (void )
o public bool WeakMap::offsetExists (object $object)
o public mixed WeakMap::offsetGet (object $object)
o public void WeakMap::offsetSet (object $object, mixed $value)
o public void WeakMap::offsetUnset (object $object)
o public void WeakMap::rewind (void )
o public bool WeakMap::valid (void )
EXAMPLES
Example #1
Weakmap usage example
<?php
$wm = new WeakMap();
$o = new StdClass;
class A {
public function __destruct() {
echo "Dead!
";
}
}
$wm[$o] = new A;
var_dump(count($wm));
echo "Unsetting..
";
unset($o);
echo "Done
";
var_dump(count($wm));
The above example will output:
int(1)
Unsetting..
Dead!
Done
int(0)PHP Documentation Group WEAKMAP(3)
Check Out this Related Man Page
SPLOBJECTSTORAGE(3) 1 SPLOBJECTSTORAGE(3)The SplObjectStorage classINTRODUCTION
The SplObjectStorage class provides a map from objects to data or, by ignoring data, an object set. This dual purpose can be useful in
many cases involving the need to uniquely identify objects.
CLASS SYNOPSIS
SplObjectStorage
SplObjectStorageCountableIteratorSerializableArrayAccess
Methods
o public void SplObjectStorage::addAll (SplObjectStorage $storage)
o public void SplObjectStorage::attach NULL (object $object, [mixed $data])
o public bool SplObjectStorage::contains (object $object)
o public int SplObjectStorage::count (void )
o public object SplObjectStorage::current (void )
o public void SplObjectStorage::detach (object $object)
o public string SplObjectStorage::getHash (object $object)
o public mixed SplObjectStorage::getInfo (void )
o public int SplObjectStorage::key (void )
o public void SplObjectStorage::next (void )
o public bool SplObjectStorage::offsetExists (object $object)
o public mixed SplObjectStorage::offsetGet (object $object)
o public void SplObjectStorage::offsetSet NULL (object $object, [mixed $data])
o public void SplObjectStorage::offsetUnset (object $object)
o public void SplObjectStorage::removeAll (SplObjectStorage $storage)
o public void SplObjectStorage::removeAllExcept (SplObjectStorage $storage)
o public void SplObjectStorage::rewind (void )
o public string SplObjectStorage::serialize (void )
o public void SplObjectStorage::setInfo (mixed $data)
o public void SplObjectStorage::unserialize (string $serialized)
o public bool SplObjectStorage::valid (void )
EXAMPLES
Example #1
SplObjectStorage as a set
<?php
// As an object set
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;
$s->attach($o1);
$s->attach($o2);
var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
$s->detach($o2);
var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>
The above example will output:
bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
Example #2
SplObjectStorage as a map
<?php
// As a map from objects to data
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;
$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);
if (isset($s[$o2])) {
var_dump($s[$o2]);
}
?>
The above example will output:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
PHP Documentation Group SPLOBJECTSTORAGE(3)