PHP8 wincache_ucache_add — 在用戶緩存中只有在該變量尚未存在于緩存中時才添加變量

2023-10-11 11:58 更新

(PECL wincache >= 1.1.0)

wincache_ucache_add — 在用戶緩存中只有在該變量尚未存在于緩存中時才添加變量。

說明

wincache_ucache_add(string $key, mixed $value, int $ttl = 0): bool
wincache_ucache_add(array $values, mixed $unused = NULL, int $ttl = 0): bool

將變量添加到用戶緩存中,僅當此變量在緩存中尚不存在時。添加的變量將保留在用戶緩存中,除非其生存時間到期,或者使用 `wincache_ucache_delete()` 或 `wincache_ucache_clear()` 函數(shù)將其刪除。

參數(shù)

key

使用此鍵名存儲變量。如果已經(jīng)存在具有相同鍵的變量,則該函數(shù)將失敗并返回 false。鍵區(qū)分大小寫。如果要覆蓋即使鍵已存在的值,請改用 `wincache_ucache_set()` 函數(shù)。鍵還可以接受名稱 => 值對的數(shù)組,其中名稱將用作鍵。這可以用于在一次操作中將多個值添加到緩存中,從而避免競態(tài)條件。

value

要存儲的變量的值。值支持除資源(如文件句柄)之外的所有數(shù)據(jù)類型。如果第一個參數(shù)是一個數(shù)組,則此參數(shù)將被忽略。一般建議在使用數(shù)組作為鍵時將值傳遞為 null。如果值是一個對象,或包含對象的數(shù)組,則對象將被序列化。有關(guān)對象序列化的詳細信息,請參閱 `__sleep()`。

values

關(guān)聯(lián)數(shù)組,包含鍵和值。

ttl

變量在緩存中存活的時間,以秒為單位。在 ttl 中指定的值經(jīng)過后,存儲的變量將從緩存中刪除。此參數(shù)的默認值為 0,這意味著變量將一直保留在緩存中,除非通過使用 `wincache_ucache_delete()` 或 `wincache_ucache_clear()` 函數(shù)明確刪除。

返回值

如果鍵是字符串,該函數(shù)在成功時返回 true,在失敗時返回 false。

如果鍵是一個數(shù)組,該函數(shù)返回以下值:

- 如果數(shù)組中的所有名稱 => 值對都可以設(shè)置,函數(shù)返回一個空數(shù)組。

- 如果數(shù)組中的所有名稱 => 值對都無法設(shè)置,函數(shù)返回 false。

- 如果有些可以設(shè)置而其他一些無法設(shè)置,函數(shù)將返回一個數(shù)組,其中包含在用戶緩存中添加失敗的名稱 => 值對。

示例

示例 #1 wincache_ucache_add() with key as a string

<?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 wincache_ucache_add() with key as an array

<?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"

參見

  • wincache_ucache_set() - 在用戶緩存中添加變量,并在已存在于緩存中的情況下覆蓋變量
  • wincache_ucache_get() - 獲取存儲在用戶緩存中的變量
  • wincache_ucache_delete() - 從用戶緩存中刪除變量
  • wincache_ucache_clear() - 刪除用戶緩存的全部內(nèi)容
  • wincache_ucache_exists() - 檢查用戶緩存中是否存在變量
  • wincache_ucache_meminfo() - 獲取用戶緩存內(nèi)存使用情況的信息
  • wincache_ucache_info() - 獲取存儲在用戶緩存中的數(shù)據(jù)信息
  • __sleep() - 魔術(shù)方法,用于對象序列化時的自定義操作


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號