PHP - Ds Map::allocate() 函式



PHP 的 Ds\Map::allocate() 用於為當前對映分配新的記憶體(容量)。分配的記憶體足以滿足所需的容量。

如果指定的值小於或等於當前容量,則對映容量將保持不變。容量將始終向上舍入到最接近的 2 的冪。

為對映分配新容量後,可以使用 capacity() 函式檢查當前容量。

語法

以下是 PHP Ds\Map::allocate() 函式的語法:

public Ds\Map::allocate(int $capacity): void

引數

此函式接受一個名為“capacity”的引數,如下所述:

  • capacity − 需要分配容量的值的數量。

返回值

此函式不返回值。

示例 1

以下是 PHP Ds\Map::allocate() 函式的基本示例:

<?php  
   $map = new \Ds\Map();
   echo "The map values are: \n";
   print_r($map);
   $capacity = 50;
   echo "The capacity need to allocate: ".$capacity;
   #using allocate() function
   $map->allocate($capacity);
   echo "\nThe map capacity is: ";
   print_r($map->capacity());
?>

輸出

上述程式產生以下輸出:

The map values are:
Ds\Map Object
(
)
The capacity need to allocate: 50
The map capacity is: 64

示例 2

以下是 PHP Ds\Map::allocate() 函式的另一個示例。我們使用此函式為此對映 ([10, 20, 30, 40, 50]) 分配新的容量:

<?php  
   $map = new \Ds\Map([10, 20, 30, 40, 50]);
   echo "The map values are: \n";
   foreach ($map as $key => $value) {
       echo "[".$key."] => ".$value."\n";
   }
   echo "The map capacity (initial): ";
   print_r($map->capacity());
   $capacity = 64;
   echo "\nThe capacity need to allocate: ".$capacity;
   #using allocate() function
   $map->allocate($capacity);
   echo "\nThe map capacity after allocating new capacity is: ";
   print_r($map->capacity());
?> 

輸出

執行上述程式後,將生成以下輸出:

The map values are:
[0] => 10
[1] => 20
[2] => 30
[3] => 40
[4] => 50
The map capacity (initial): 8
The capacity need to allocate: 64
The map capacity after allocating new capacity is: 64

示例 3

如果指定的值小於或等於當前容量,則容量將保持不變:

<?php  
   $map = new \Ds\Map(['a', 'b', 'c']);
   echo "The map values are: \n";
   foreach ($map as $key => $value) {
       echo "[".$key."] => ".$value."\n";
   }
   echo "The map capacity (initial): ";
   print_r($map->capacity());
   $capacity = 5;
   echo "\nThe capacity need to allocate: ".$capacity;
   #using allocate() function
   $map-<allocate($capacity);
   echo "\nThe map capacity after allocating new capacity is: ";
   print_r($map->capacity());
?>

輸出

執行上述程式後,將顯示以下輸出:

The map values are:
[0] => a
[1] => b
[2] => c
The map capacity (initial): 8
The capacity need to allocate: 5
The map capacity after allocating new capacity is: 8
php_function_reference.htm
廣告