PHP Conference Japan 2024

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add 僅當變數在使用者快取中不存在時,才將變數新增至使用者快取

說明

wincache_ucache_add(字串 $key, 混合 $value, 整數 $ttl = 0): 布林值
wincache_ucache_add(陣列 $values, 混合 $unused = NULL, 整數 $ttl = 0): 布林

僅當變數不存在於快取中時,才將變數新增至使用者快取。新增的變數會保留在使用者快取中,直到其存活時間到期,或使用 wincache_ucache_delete()wincache_ucache_clear() 函式將其刪除。

參數

鍵名 (key)

使用此 key 名稱儲存變數。如果已存在具有相同鍵名的變數,則函式將會失敗並傳回 falsekey 有區分大小寫。若要覆寫值(即使 key 已存在),請改用 wincache_ucache_set() 函式。key 也可以接受名稱 => 值對的陣列,其中名稱將會用作鍵名。這可以用於在單次操作中將多個值新增至快取,從而避免競爭條件。

值 (value)

要儲存的變數值。value 支援所有資料類型,但資源(例如檔案控制代碼)除外。如果第一個參數是陣列,則會忽略此參數。一般建議是在使用陣列作為 key 時,將 null 作為 value 傳遞。如果 value 是物件或包含物件的陣列,則物件將會被序列化。有關序列化物件的詳細資訊,請參閱 __sleep()

值 (values)

鍵名和值的關聯式陣列。

存活時間 (ttl)

變數在快取中的存活時間(以秒為單位)。在 ttl 中指定的值過後,儲存的變數將會從快取中刪除。此參數的預設值為 0,這表示變數將會保留在快取中,除非使用 wincache_ucache_delete()wincache_ucache_clear() 函式明確刪除。

傳回值

如果 key 是字串,則函式在成功時傳回 true,在失敗時傳回 false

如果 key 是陣列,則函式傳回

  • 如果可以設定陣列中的所有名稱 => 值對,則函式傳回一個空陣列;
  • 如果無法設定陣列中的所有名稱 => 值對,則函式傳回 false
  • 如果可以設定一些,而其他則無法設定,則函式會傳回一個陣列,其中包含在使用者快取中新增失敗的名稱=>值對。

範例

範例 #1 wincache_ucache_add(),其中 key 為字串

<?php
$bar
= 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

以上範例會輸出:

bool(true)
bool(false)
string(3) "BAR"

範例 #2 使用陣列作為 keywincache_ucache_add()

<?php
$colors_array
= array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

以上範例會輸出:

array(0) { } 
array(4) { 
  ["green"]=> int(-1) 
  ["Blue"]=> int(-1) 
  ["yellow"]=> int(-1) 
  ["cyan"]=> int(-1) 
} 
string(1) "6"

另請參閱

新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top