wiki/content/20201110103654-php_weap_maps.md

38 lines
803 B
Markdown
Raw Normal View History

2024-05-06 20:40:05 +00:00
---
2024-10-29 18:27:12 +00:00
date: 2020-11-10
2024-05-06 20:40:05 +00:00
id: 954a4b48-f3a5-4ef6-a2ea-93f843250c68
title: PHP Weap Maps
---
# Description
Weak maps[^1] allow creating a map from objects to arbitrary values
(similar to SplObjectStorage) without preventing the objects that are
used as keys from being garbage collected. If an object key is garbage
collected, it will simply be removed from the map. This will save a lot
of headaches for people writing things like ORMs.
# Syntax
``` php
class Foo
{
private WeakMap $cache;
public function getSomethingWithCaching(object $obj): object
{
return $this->cache[$obj]
??= $this->computeSomethingExpensive($obj);
}
}
```
# Related
- [PHP](20201109133720-php)
- [PHP 8.0](20201109133834-php_8_0)
# Footnotes
[^1]: <https://wiki.php.net/rfc/weak_maps>