1--TEST-- 2Self-referencing map entry GC - 001 3--FILE-- 4<?php 5 6class Value { 7 public function __construct(public readonly string $value) { 8 } 9} 10 11$map = new WeakMap(); 12$obj = new Value('a'); 13$map[$obj] = $obj; 14 15gc_collect_cycles(); 16 17var_dump($map); 18 19$obj = null; 20gc_collect_cycles(); 21 22var_dump($map); 23 24--EXPECTF-- 25object(WeakMap)#%d (1) { 26 [0]=> 27 array(2) { 28 ["key"]=> 29 object(Value)#%d (1) { 30 ["value"]=> 31 string(1) "a" 32 } 33 ["value"]=> 34 object(Value)#%d (1) { 35 ["value"]=> 36 string(1) "a" 37 } 38 } 39} 40object(WeakMap)#%d (0) { 41} 42