# Ds\Map::remove

(PECL ds >= 1.0.0)

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

### 说明

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.

> 注意:

> 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.

> 注意:

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

警告

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.

### 参数

`key`

  The key to remove.

`default`

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

### 返回值

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

### 错误／异常

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

### 示例

示例 #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)
?>`

以上示例的输出类似于：

    int(1)
    int(10)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open