# Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Enlève et renvoie une valeur par clé

### Description

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

Enlève et renvoie une valeur par clé, ou renvoie une valeur par défaut optionnelle si la clé n'a pas pu être trouvée.

> Note:

> Les clés de type object sont supportées. Si un objet implémente Ds\Hashable, l'égalité sera déterminée par la fonction `equals` de l'objet. Si un objet n'implémente pas Ds\Hashable, les objets doivent être des références à la même instance pour être considérés comme égaux.

> Note:

> Vous pouvez également utiliser la syntaxe de tableau pour accéder aux valeurs par clé, par exemple `$map["clé"]`.

Attention

Attention à l'utilisation de la syntaxe de tableau. Les clés scalaires seront coercées en entiers par le moteur. Par exemple, `$map["1"]` tentera d'accéder à `int(1)`, tandis que `$map->get("1")` recherchera correctement la clé de chaîne.

Voir tableaux.

### Liste de paramètres

`key`

  La clé à enlever.

`default`

  La valeur par défaut optionnelle, renvoyée si la clé n'a pas pu être trouvée.

### Valeurs de retour

La valeur qui a été enlevée, ou la `default` valeur si elle a été fournie et que la `key` n'a pas pu être trouvée dans la carte.

### Erreurs / Exceptions

OutOfBoundsException si la clé n'a pas été trouvée et qu'aucune valeur par défaut n'a été fournie.

### Exemples

Exemple #1 Exemple de Ds\Map::remove()

`<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->remove("a")); // 1
var_dump($map->remove("e", 10)); // 10 (utilsation de la valeur par défaut)
?>`

Résultat de l'exemple ci-dessus est similaire à :

    int(1)
    int(10)