(PECL wincache >= 1.1.0)
wincache_ucache_add — 僅當變數在使用者快取中不存在時,才將變數新增至使用者快取
僅當變數不存在於快取中時,才將變數新增至使用者快取。新增的變數會保留在使用者快取中,直到其存活時間到期,或使用 wincache_ucache_delete() 或 wincache_ucache_clear() 函式將其刪除。
鍵名 (key)
使用此 key
名稱儲存變數。如果已存在具有相同鍵名的變數,則函式將會失敗並傳回 false
。key
有區分大小寫。若要覆寫值(即使 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 使用陣列作為 key
的 wincache_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"