首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry - 以原子方式获取或生成缓存条目

描述

代码语言:javascript
复制
mixed apcu_entry ( string $key , callable $generator [, int $ttl = 0 ] )

key试图在缓存中寻找原子,如果找不到,则作为唯一参数generator传递key。然后调用的返回值与可选的指定值一起缓存ttl,并返回。

注意:当控制进入apcu_entry()时,缓存的锁被独占获取,当控制离开apcu_entry()时它被释放:实际上,这会将主体generator转换为临界区,不允许两个进程同时执行相同的代码路径。此外,它禁止同时执行任何其他 APCu 功能,因为它们将获得相同的锁定。

警告

唯一可以安全调用的 APCu 函数generatorapcu_entry()

参数

key

缓存条目的标识

generator

一个可调用的接受key作为唯一参数并将值返回缓存。

ttl

生存时间; var在缓存中存储ttl几秒钟。在ttl通过之后,存储的变量将从缓存中删除(在下一个请求中)。如果ttl提供了 no (或者如果该ttl值为0),则该值将一直保持到手动将其从缓存中移除,否则将无法存在于缓存中(清除,重新启动等)。

返回值

返回缓存的值

例子

Example #1 An apcu_entry() example

代码语言:javascript
复制
<?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);
?>

上面的例子将输出:

代码语言:javascript
复制
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"
  }
}

扫码关注腾讯云开发者

领取腾讯云代金券