PHP Conference Japan 2024

apcu_add

(PECL apcu >= 4.0.0)

apcu_add 在資料存放區中快取新的變數

說明

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

僅在變數尚未儲存於資料存放區時,將其快取。

注意 與 PHP 中的許多其他機制不同,使用 apcu_add() 儲存的變數會在請求之間持續存在(直到從快取中移除該值)。

參數

key(鍵)

使用此名稱儲存變數。key 在快取中是唯一的,因此嘗試使用 apcu_add() 以已存在的鍵儲存資料將不會覆蓋現有資料,而是會返回 false。(這是 apcu_add()apcu_store() 之間的唯一區別。)

var(變數)

要儲存的變數

ttl(存活時間)

存活時間;將 var 儲存在快取中 ttl 秒。在 ttl 時間過後,儲存的變數將會從快取中移除(在下一個請求時)。如果未提供 ttl(或者 ttl0),則該值將會持續存在,直到手動從快取中移除,或因其他原因而不再存在於快取中(清除、重新啟動等)。

values(值)

鍵中的名稱,值中的變數。

回傳值

如果已有效地將某些內容添加到快取中,則返回 TRUE,否則返回 FALSE。第二種語法返回帶有錯誤鍵的陣列。

範例

範例 #1 apcu_add() 範例

<?php
$bar
= 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo
"\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo
"\n";
?>

以上範例將輸出

string(3) "BAR"
string(3) "BAR"

參見

新增註解

使用者貢獻的註解 1 則註解

4
sritter at satoya dot cz
3 年前
這可以用於鎖定/解鎖

<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// 這段程式碼可以防止多行程/多執行緒同時執行
apcu_delete('lock_name');
To Top