(PECL wincache >= 1.1.0)
wincache_ucache_add — 仅当变量在缓存中尚不存在时,才将变量添加到用户缓存中
仅当此变量在缓存中尚不存在时,才将变量添加到用户缓存中。添加的变量保留在用户缓存中,除非其生存时间到期或使用 wincache_ucache_delete() 或 wincache_ucache_clear() 函数将其删除。
key
使用此 key
名称存储变量。如果已存在具有相同键的变量,则函数将失败并返回 false
。 key
区分大小写。即使 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"