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');
(PECL apcu >= 4.0.0)
apcu_add — Almacena en caché una nueva variable en el almacén de datos
Almacena en caché una variable en el almacén de datos, solo si no ha sido ya almacenada.
Nota: A diferencia de muchos otros mecanismos en PHP, las variables almacenadas utilizando apcu_add() persistirán entre las peticiones (hasta que sus valores sean retirados del caché).
key
Almacena la variable utilizando este nombre de clave. Cada clave es única en el caché,
intentar utilizar apcu_add() para almacenar un dato con una
clave key
ya existente no sobrescribirá el dato sino que devolverá
el valor false
. (Esta es la única diferencia entre
las funciones apcu_add() y apcu_store().)
var
La variable a almacenar.
ttl
Duración de vida; almacena la variable var
en el caché durante
ttl
segundos. Después de la expiración de
ttl
, la variable almacenada será retirada del caché (en la
próxima petición). Si no se pasa ningún valor a
ttl
(o si el valor de ttl
es
0
), la variable persistirá hasta que sea retirada
manualmente del caché, o, de lo contrario, fallará al salir del caché (durante un
borrado, reinicio, etc.).
values
Los nombres son proporcionados por las claves del array values
,
las variables por los valores.
Devuelve TRUE si una variable ha sido efectivamente añadida al caché, FALSE en caso contrario. La segunda sintaxis devuelve un array con las claves erróneas.
Ejemplo #1 Un ejemplo con apcu_add()
<?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";
?>
El resultado del ejemplo sería:
string(3) "BAR" string(3) "BAR"
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');