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
廣告