(PECL wincache >= 1.1.0)
wincache_ucache_add — 仅当变量在缓存中不存在时才将变量添加到用户缓存中
将变量添加到用户缓存中,前提是该变量在缓存中不存在。添加的变量将保留在用户缓存中,除非其生存时间到期或通过使用 wincache_ucache_delete() 或 wincache_ucache_clear() 函数删除。
key
使用此 key
名称存储变量。如果已经存在具有相同键的变量,则函数将失败并返回 false
。key
区分大小写。要覆盖值,即使 key
存在,也请使用 wincache_ucache_set() 函数。 key
也可以采用 name => value 对的数组,其中名称将用作键。这可用于在一次操作中向缓存中添加多个值,从而避免竞争条件。
value
要存储的变量的值。Value
支持除资源(如文件句柄)之外的所有数据类型。如果第一个参数是数组,则此参数将被忽略。一般建议是在使用数组作为 key
时,将 null
作为 value
传递。如果 value
是一个对象,或包含对象的数组,那么该对象将被序列化。有关序列化对象的详细信息,请参阅 __sleep()。
values
键和值的关联数组。
ttl
变量在缓存中生存的时间(以秒为单位)。在 ttl
中指定的值过去之后,存储的变量将从缓存中删除。此参数的默认值为 0
,这意味着变量将保留在缓存中,除非使用 wincache_ucache_delete() 或 wincache_ucache_clear() 函数显式删除。
如果 key
是字符串,则函数在成功时返回 true
,在失败时返回 false
。
如果 key
是一个数组,则函数返回
false
;
示例 #1 wincache_ucache_add(),其中 key
为字符串
<?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 wincache_ucache_add(),其中 key
为数组
<?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"