Ds\Map::put
En esta página
Ds\Map::put
Asocia una clave a un valor
Descripción#
public Ds\Map::put(mixed $key, mixed $value): void
```php
Asocia una `clave` a un `valor`, sobrescribiendo una asociación previa si existe.
> [!NOTE]
> Las claves de tipo `object` son soportadas. Si un objeto implementa `Ds\Hashable`, la igualdad será determinada por la función `equals` del objeto. Si un objeto no implementa `Ds\Hashable`, los objetos deben ser referencias a la misma instancia para ser considerados iguales.
> [!NOTE]
> Asimismo, se puede utilizar la sintaxis de array para asociar valores por clave, por ejemplo `$map["clave"] = $valor`.
> [!CAUTION]
> Atención al uso de la sintaxis de array. Las claves escalares serán coercionadas a enteros por el motor. Por ejemplo, `$map["1"]` intentará acceder a `int(1)`, mientras que `$map->get("1")` buscará correctamente la clave de string.
>
> Ver [arrays](#language.types.array).
## Parámetros
`key`
La clave a asociar al valor.
`value`
El valor a asociar a la clave.
## Valores devueltos
No se retorna ningún valor.
## Ejemplos
Ejemplo de `Ds\Map::put`
Resultado del ejemplo anterior es similar a:
Ds\Map Object
(
[0] => Ds\Pair Object
(
[key] => a
[value] => 1
)
[1] => Ds\Pair Object
(
[key] => b
[value] => 2
)
[2] => Ds\Pair Object
(
[key] => c
[value] => 3
)
)
Ejemplo de `Ds\Map::put` utilizando objetos como clave
```php
Resultado del ejemplo anterior es similar a:
object(Ds\Map)#1 (5) {
[0]=>
object(Ds\Pair)#7 (2) {
["key"]=>
object(ArrayIterator)#2 (1) {
["storage":"ArrayIterator":private]=>
array(0) {
}
}
["value"]=>
int(2)
}
[1]=>
object(Ds\Pair)#8 (2) {
["key"]=>
object(stdClass)#3 (0) {
}
["value"]=>
int(3)
}
[2]=>
object(Ds\Pair)#9 (2) {
["key"]=>
object(stdClass)#4 (0) {
}
["value"]=>
int(4)
}
[3]=>
object(Ds\Pair)#10 (2) {
["key"]=>
object(HashableObject)#5 (1) {
["value":"HashableObject":private]=>
int(1)
}
["value"]=>
int(6)
}
[4]=>
object(Ds\Pair)#11 (2) {
["key"]=>
object(HashableObject)#6 (1) {
["value":"HashableObject":private]=>
int(2)
}
["value"]=>
int(8)
}
}