apcu_add

(PECL apcu >= 4.0.0)

apcu_add 在数据存储中缓存新变量

说明

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

在数据存储中缓存变量,仅当该变量尚未存储时。

注意: 与 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