這可以用於鎖定/解鎖
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// 這段程式碼可以防止多行程/多執行緒同時執行
apcu_delete('lock_name');
(PECL apcu >= 4.0.0)
apcu_add — 在資料存放區中快取新的變數
僅在變數尚未儲存於資料存放區時,將其快取。
注意: 與 PHP 中的許多其他機制不同,使用 apcu_add() 儲存的變數會在請求之間持續存在(直到從快取中移除該值)。
key(鍵)
使用此名稱儲存變數。key
在快取中是唯一的,因此嘗試使用 apcu_add() 以已存在的鍵儲存資料將不會覆蓋現有資料,而是會返回 false
。(這是 apcu_add() 和 apcu_store() 之間的唯一區別。)
var(變數)
要儲存的變數
ttl(存活時間)
存活時間;將 var
儲存在快取中 ttl
秒。在 ttl
時間過後,儲存的變數將會從快取中移除(在下一個請求時)。如果未提供 ttl
(或者 ttl
為 0
),則該值將會持續存在,直到手動從快取中移除,或因其他原因而不再存在於快取中(清除、重新啟動等)。
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"
這可以用於鎖定/解鎖
<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// 這段程式碼可以防止多行程/多執行緒同時執行
apcu_delete('lock_name');