apcu_add

(PECL apcu >= 4.0.0)

apcu_add Cache a new variable in the data store

说明

apcu_add ( string $key , mixed $var , int $ttl = 0 ) : bool
apcu_add ( array $values , mixed $unused = NULL , int $ttl = 0 ) : array

Caches a variable in the data store, only if it's not already stored.

Note: Unlike many other mechanisms in PHP, variables stored using apcu_add() will persist between requests (until the value is removed from the cache).

参数

key

Store the variable using this name. keys are cache-unique, so attempting to use apcu_add() to store data with a key that already exists will not overwrite the existing data, and will instead return false. (This is the only difference between apcu_add() and apcu_store().)

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl 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.

返回值

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

范例

Example #1 A apcu_add() example

<?php
$bar 
'BAR';
apcu_add('foo'$bar);
var_dump(apcu_fetch('foo'));
echo 
"\n";
$bar 'NEVER GETS SET';
apcu_add('foo'$bar);
var_dump(apcu_fetch('foo'));
echo 
"\n";
?>

以上例程会输出:

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

参见

User Contributed Notes

sritter at satoya dot cz 27-Mar-2021 03:19
This is usable for locking/unlocking

<?php
do {} while (!apcu_add('lock_name', 'foo', 10));
// this part is protected against multiple/multithread run
apcu_delete('lock_name');