PHP Conference Japan 2024

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove透過鍵值移除並回傳值

說明

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

透過鍵值移除並回傳值,如果找不到鍵值,則回傳選擇性的預設值。

注意:

支援 物件 類型的鍵值。如果物件實作了 Ds\Hashable 介面,則相等性將由物件的 equals 函式決定。如果物件未實作 Ds\Hashable 介面,則物件必須參考同一個實例才會被視為相等。

注意:

您也可以使用陣列語法透過鍵值來存取值,例如 $map["key"]

注意

使用陣列語法時要小心。純量鍵值會被引擎強制轉換為整數。例如,$map["1"] 會嘗試存取 int(1),而 $map->get("1") 會正確地查找字串鍵值。

參見 陣列

參數

key

要移除的鍵值。

default

可選的預設值,如果找不到鍵值則會返回此值。

返回值

被移除的值,或者如果提供了 default 值且在映射中找不到 key,則返回 default 值。

錯誤/異常

如果找不到鍵值且未提供預設值,則會拋出 OutOfBoundsException 異常。

範例

範例 #1 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 (使用預設值)
?>

以上範例的輸出結果類似於:

int(1)
int(10)
新增註解

使用者貢獻的註解 1 則註解

1
carlo dot revelli at berkeley dot edu
5 年前
請注意以下語法

<?php

unset($map[$key]);

?>

也是有效的,而且在我的機器上執行速度快了 2 倍
To Top