apc_add
(PECL apc >= 3.0.13)
apc_add — Cache a new variable in the data store
Description
Caches a variable in the data store, only if it's not already stored.
Note: Unlike many other mechanisms in PHP, variables stored using apc_add() will persist between requests (until the value is removed from the cache).
Parameters
-
key
-
Store the variable using this name.
key
s are cache-unique, so attempting to use apc_add() to store data with a key that already exists will not overwrite the existing data, and will instead returnFALSE
. (This is the only difference between apc_add() and apc_store().) -
var
-
The variable to store
-
ttl
-
Time To Live; store
var
in the cache forttl
seconds. After thettl
has passed, the stored variable will be expunged from the cache (on the next request). If nottl
is supplied (or if thettl
is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.). -
values
-
Names in key, variables in value.
Return Values
Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.
Examples
Example #1 A apc_add() example
<?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";
?>
The above example will output:
string(3) "BAR" string(3) "BAR"
See Also
- apc_store() - Cache a variable in the data store
- apc_fetch() - Fetch a stored variable from the cache
- apc_delete() - Removes a stored variable from the cache
Коментарии
In order to understand better how APC caching works you can do the following:
1. Restart web server (Apache or Nginx)
2. Create file "apc_fetch.php":
<?php
var_dump(apc_fetch(array(
'CUR_DATE_5s_1',
'CUR_DATE_5s_2',
'CUR_DATE_5s_3',
'CUR_DATE_0s_1',
'CUR_DATE_0s_2',
'CUR_DATE_0s_3',
)));
?>
3. Create file "apc_add.php":
<?php
$ttl = 5;
$key = 'CUR_DATE_5s_1';
$var = date('c');
$result = apc_add($key, $var, $ttl);
var_dump($result);
echo "\n";
$var = date('c');
$result = apc_add($key, $var, $ttl);
var_dump($result);
echo "\n";
$key = 'CUR_DATE_0s_1';
$var = date('c');
$result = apc_add($key, $var);
var_dump($result);
echo "\n";
$values = array(
'CUR_DATE_5s_2' => date('c'),
'CUR_DATE_5s_3' => rand(),
);
$result = apc_add($values, null, $ttl);
var_dump($result);
echo "\n";
$values = array(
'CUR_DATE_0s_2' => date('c'),
'CUR_DATE_0s_3' => rand(),
);
$result = apc_add($values, null);
var_dump($result);
?>
4. Run "apc_fetch.php" and "apc_add.php" several times in order to see the persistent result and how values change from one request to another.