函数名:WeakMap::getIterator()
适用版本:PHP 8.1.0 及以上版本
用法:WeakMap::getIterator() 方法用于获取 WeakMap 对象的迭代器。迭代器可以用于遍历 WeakMap 对象中的所有键值对。
示例:
// 创建一个 WeakMap 对象
$map = new WeakMap();
// 定义几个对象作为键和值
$key1 = new stdClass();
$value1 = "Value 1";
$key2 = new stdClass();
$value2 = "Value 2";
// 将对象作为键和值添加到 WeakMap 对象中
$map[$key1] = $value1;
$map[$key2] = $value2;
// 获取 WeakMap 对象的迭代器
$iterator = $map->getIterator();
// 使用 foreach 循环遍历迭代器获取键值对
foreach ($iterator as $key => $value) {
echo "Key: " . spl_object_id($key) . ", Value: " . $value . "\n";
}
// 输出结果:
// Key: 1, Value: Value 1
// Key: 2, Value: Value 2
在上面的示例中,我们首先创建了一个 WeakMap 对象 $map
。然后,我们创建了两个对象 $key1
和 $key2
,以及对应的值 $value1
和 $value2
。接下来,我们将这些对象作为键和值添加到 WeakMap 对象中。
然后,我们使用 $map->getIterator()
方法获取 WeakMap 对象的迭代器 $iterator
。通过使用 foreach
循环遍历迭代器,我们可以获取 WeakMap 对象中的每个键值对。在循环中,我们使用 spl_object_id()
函数获取对象的唯一标识符,并将键和值输出到控制台。
最后,输出结果显示了 WeakMap 对象中的键值对,其中键的标识符为 1 和 2,值分别为 "Value 1" 和 "Value 2"。