# apc_add

(PECL apc >= 3.0.13)

apc_add — 缓存一个变量到数据存储

### 说明

apc_add ( string `$key` , mixed `$var` [, int `$ttl` = 0 ] ) : bool
apc_add ( array `$values` [, mixed `$unused` = NULL [, int `$ttl` = 0 ]] ) : array

仅仅在缓存变量不存在的情况下缓存变量到数据存储中

> Note: 与PHP中其他的机制不同，使用apc_add() 存储变量 在不同的请求之间一直持久存在（直到从缓存系统中移除）

### 参数

`key`

  存储缓存变量使用的名称`key`s 是唯一的， 所以试图使用 apc_add() 去添加一个名称已经存在的缓存， 将不会覆盖现有的缓存的值, 并且返回 `FALSE`. (这个是 apc_add() 和 apc_store()之间唯一的不同.)

`var`

  存储的变量

`ttl`

  生存时间;在缓存中存储`var`共`ttl`秒, 在`ttl`秒过去后,存储的变量将会从缓存中擦除(在下一次请求时), 如果没有设置`ttl`(或者`ttl`是0), 变量将一直存活到被手动移除为止,除此之外不在缓存中的可能原因是，缓存系统使用clear，或者restart等

`values`

  Names in key, variables in value.

### 返回值

Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.

### 范例

Example #1 apc_add() 例子

    <?php
    $bar = 'BAR';
    apc_add('foo', $bar);
    var_dump(apc_fetch('foo'));
    echo "\n";
    $bar = 'NEVER GETS SET';
    apc_add('foo', $bar);
    var_dump(apc_fetch('foo'));
    echo "\n";
    ?>

以上例程会输出：

    string(3) "BAR"
    string(3) "BAR"

### 参见

- apc_store() - Cache a variable in the data store
- apc_fetch() - 从缓存中取出存储的变量
- apc_delete() - 从用户缓存中删除某个变量