apcu_add

(PECL apcu >= 4.0.0)

apcu_add Almacena en caché una nueva variable en el almacén de datos

Descripción

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

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é).

Parámetros

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.

Valores devueltos

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.

Ejemplos

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"

Ver también

add a note

User Contributed Notes 1 note

up
4
sritter at satoya dot cz
4 years ago
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');
To Top