# Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Removes and returns a value by key

### Descripción

public Ds\Map::remove(mixed `$key`, mixed `$default` = ?): mixed

Removes and returns a value by key, or return an optional default value if the key could not be found.

> Nota:

> Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's `equals` function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

> Nota:

> You can also use array syntax to access values by key, eg. `$map["key"]`.

Precaución

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, `$map["1"]` will attempt to access `int(1)`, while `$map->get("1")` will correctly look up the string key.

See Arrays.

### Parámetros

`key`

  The key to remove.

`default`

  The optional default value, returned if the key could not be found.

### Valores devueltos

The value that was removed, or the `default` value if provided and the `key` could not be found in the map.

### Errores/Excepciones

OutOfBoundsException if the key could not be found and a default value was not provided.

### Ejemplos

Ejemplo #1 Ds\Map::remove() example

`<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->remove("a")); // 1
var_dump($map->remove("e", 10)); // 10 (default used)
?>`

El resultado del ejemplo sería algo similar a:

    int(1)
    int(10)