PHP Conference Japan 2024

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add仅当变量在缓存中尚不存在时,才将变量添加到用户缓存中

描述

wincache_ucache_add(字符串 $key, 混合 $value, 整数 $ttl = 0): 布尔值
wincache_ucache_add(数组 $values, 混合 $unused = NULL, 整数 $ttl = 0): 布尔值

仅当此变量在缓存中尚不存在时,才将变量添加到用户缓存中。添加的变量保留在用户缓存中,除非其生存时间到期或使用 wincache_ucache_delete()wincache_ucache_clear() 函数将其删除。

参数

key

使用此 key 名称存储变量。如果已存在具有相同键的变量,则函数将失败并返回 falsekey 区分大小写。即使 key 存在,也要覆盖值,请改用 wincache_ucache_set() 函数。 key 还可以采用名称 => 值对的数组,其中名称将用作键。这可用于在一个操作中将多个值添加到缓存中,从而避免竞争条件。

value

要存储的变量的值。 Value 支持除资源(例如文件句柄)之外的所有数据类型。如果第一个参数是数组,则忽略此参数。使用数组作为 key 时,一般建议将 null 作为 value 传递。如果 value 是一个对象,或包含对象的数组,则对象将被序列化。有关序列化对象的详细信息,请参见 __sleep()

values

键和值的关联数组。

ttl

变量在缓存中生存的时间(以秒为单位)。在 ttl 中指定的值过去后,存储的变量将从缓存中删除。此参数的默认值为 0,这意味着变量将保留在缓存中,除非使用 wincache_ucache_delete()wincache_ucache_clear() 函数显式删除。

返回值

如果 key 是字符串,则函数在成功时返回 true,失败时返回 false

如果 key 是数组,则函数返回

  • 如果数组中的所有名称 => 值对都可以设置,则函数返回一个空数组;
  • 如果数组中的所有名称 => 值对都无法设置,则函数返回 false
  • 如果有些可以设置而有些不能,则函数返回一个数组,其中包含在用户缓存中添加失败的名称 => 值对。

示例

示例 #1 使用 key 作为字符串的 wincache_ucache_add()

<?php
$bar
= 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

以上示例将输出

bool(true)
bool(false)
string(3) "BAR"

示例 #2 使用 key 作为数组的 wincache_ucache_add()

<?php
$colors_array
= array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

以上示例将输出

array(0) { } 
array(4) { 
  ["green"]=> int(-1) 
  ["Blue"]=> int(-1) 
  ["yellow"]=> int(-1) 
  ["cyan"]=> int(-1) 
} 
string(1) "6"

参见

添加注释

用户贡献注释

此页面没有用户贡献注释。
To Top