PHP 日本大会 2024

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray 将映射转换为 数组

描述

public Ds\Map::toArray(): array

将映射转换为数组

警告

非标量键的映射无法转换为数组

警告

数组 将所有数字键视为整数,例如,映射中的键 "1"1 只会使 1 包含在数组中。

注意:

目前不支持强制转换为数组

参数

此函数没有参数。

返回值

一个数组,包含所有值,顺序与映射相同。

示例

示例 #1 Ds\Map::toArray() 示例

<?php
$map
= new \Ds\Map([
"a" => 1,
"b" => 2,
"c" => 3,
]);

var_dump($map->toArray());
?>

以上示例将输出类似以下内容

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
添加注释

用户贡献的注释 1 条注释

foalford at gmail dot com
4 年前
当使用 Hashable 对象作为 $key 时,Map::put() 直到稍后才会调用 Hashable::hash() 在键上。例如

<?
类 Key 实现 \Ds\Hashable
{
受保护的 $id;

公共函数 __construct($id)
{
$this->id = $id;
}

公共函数 equals($obj) : bool
{
返回 $this->id == $obj->id;
}

公共函数 hash()
{
返回 $this->id;
}
}
$map = new \Ds\Map();
$myki = new Key('myki');

$map->put($myki, "Value String");

var_dump($map->get($myki));
echo 'Map::put() 存储 Hashable 对象,这会导致 toArray() 中出现错误' . PHP_EOL;
var_dump($map->toArray());
?>
To Top