PHP - Ds Map::remove() 函数



PHP 的 Ds\Map::remove() 函数用于根据键删除指定的值,并返回与该键关联的值。如果在映射中找不到指定的键,则返回提供的默认值。

如果在当前映射中找不到键且未提供默认值,则此函数会抛出 OutOfBoundsException

语法

以下是 PHP Ds\Map::remove() 函数的语法:

public mixed Ds\Map::remove( mixed $key [, mixed $default ] )

参数

以下是此函数的参数:

  • key - 要删除的键。
  • default (可选) - 可选的默认值,如果未找到键则返回。

返回值

此函数返回已删除的值,或者如果在映射中找不到键时提供了默认值,则返回默认值。

示例 1

以下是 Ds\Map::remove() 函数的基本示例:

<php  
   $map = new \Ds\Map([1, 2, 3, 4, 5]);
   echo("The map elements are: \n");  
   print_r($map);
   $k = 3;
   echo "The key value is: ".$k;
   echo("\nThe removed element of a map: ");  
   var_dump($map->remove($k));  
?>

输出

以上程序显示以下输出:

The map elements are:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 0
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => 2
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => 3
            [value] => 4
        )

    [4] => Ds\Pair Object
        (
            [key] => 4
            [value] => 5
        )

)
The key value is: 3
The removed element of a map: int(4)

示例 2

以下是 PHP Ds\Map::remove() 函数的另一个示例。我们使用此函数删除此映射(["a"=>"Tutorials", "b"=>"Point", "c"=>"India", "d"=>"Tutorix"])中由键“c”指定的值:

<?php  
   $map = new \Ds\Map(["a"=>"Tutorials", "b"=>"Point", "c"=>"India", "d"=>"Tutorix"]);  
   echo("The map elements are: \n");  
   print_r($map);
   $k = "c";
   echo "The key value is: ";
   echo("\nThe removed element of a map: ");  
   var_dump($map->remove($k));  
?>

输出

执行上述程序后,将产生以下输出:

The map elements are:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => Tutorials
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => Point
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => India
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => Tutorix
        )

)
The key value is:
The removed element of a map: string(5) "India"

示例 3

如果在映射中找不到指定的键,则此函数会抛出“OutOfBoundsException”:

<?php  
   $map = new \Ds\Map([10, 20, 30]);  
   echo("The map elements are: \n");  
   print_r($map);
   $k = 4;
   echo "The key value is: ";
   echo("\nThe removed element of a map: ");  
   var_dump($map->remove($k));  
?>

输出

以上程序抛出以下异常:

The map elements are:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 0
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => 20
        )

    [2] => Ds\Pair Object
        (
            [key] => 2
            [value] => 30
        )

)
The key value is:
The removed element of a map: PHP Fatal error:  
Uncaught OutOfBoundsException: Key not found in C:\Apache24\htdocs\index.php:8
Stack trace:
#0 C:\Apache24\htdocs\index.php(8): Ds\Map->remove(4)
#1 {main}
  thrown in C:\Apache24\htdocs\index.php on line 8

示例 4

如果在映射中未找到指定的键,则此函数将返回提供的“default”值:

<?php  
   $map = new \Ds\Map(["1"=> 'a', "2"=>'e', "3"=>'i']);  
   echo("The map elements are: \n");  
   print_r($map);
   $k = "4";
   $d = "o";
   echo "The key value is: ".$k;
   echo "\nThe default value is: ".$d;
   echo ("\nIf the key does not found (default value): ");  
   var_dump($map->remove($k, $d));
?>

输出

执行上述程序后,将显示以下输出:

The map elements are:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 1
            [value] => a
        )

    [1] => Ds\Pair Object
        (
            [key] => 2
            [value] => e
        )

    [2] => Ds\Pair Object
        (
            [key] => 3
            [value] => i
        )

)
The key value is: 4
The default value is: o
If the key does not found (defualt value): string(1) "o"
php_function_reference.htm
广告

© . All rights reserved.