W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
(PECL apcu >= 5.1.0)
apcu_entry—自動獲取或生成緩存項
apcu_entry(string $key, callable $generator, int $ttl = 0): mixed
自動嘗試在緩存中查找key,如果找不到則調(diào)用generator,并將key作為唯一參數(shù)傳遞。然后將調(diào)用的返回值與可選指定的ttl一起緩存并返回。
注意:當(dāng)控制進(jìn)入apcu_entry()時,緩存的鎖被獨占獲取,當(dāng)控制離開apcu_entry()時,鎖被釋放:實際上,這將生成器的主體變成一個臨界區(qū),不允許兩個進(jìn)程并發(fā)地執(zhí)行相同的代碼路徑。此外,它禁止任何其他APCu函數(shù)的并發(fā)執(zhí)行,因為它們將獲得相同的鎖。
警告唯一可以被生成器安全地調(diào)用的APCu函數(shù)是apcu_entry()。
key
緩存項標(biāo)識
generator
接受?key
?作為唯一參數(shù)并將值返回到緩存的可調(diào)用對象。
ttl
生存的時間;將?var
?存儲在緩存中?TTL
?秒。?ttl
?過期后,存儲的變量將從緩存中刪除(在下一次請求時)。如果沒有提供?ttl
?(或者?ttl
?為?0
?),則該值將一直存在,直到手動從緩存中刪除,或者在緩存中不存在(清除,重新啟動等)。
返回緩存的值。
示例 #1 An apcu_entry() example
<?php
$config = apcu_entry("config", function($key) {
return [
"fruit" => apcu_entry("config.fruit", function($key){
return [
"apples",
"pears"
];
}),
"people" => apcu_entry("config.people", function($key){
return [
"bob",
"joe",
"niki"
];
})
];
});
var_dump($config);
?>
以上示例會輸出:
array(2) {
["fruit"]=>
array(2) {
[0]=>
string(6) "apples"
[1]=>
string(5) "pears"
}
["people"]=>
array(3) {
[0]=>
string(3) "bob"
[1]=>
string(3) "joe"
[2]=>
string(4) "niki"
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: