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 — Met en cache une nouvelle variable dans le dépôt de données
Met en cache une variable dans le dépôt de données, seulement si elle n'a pas été déjà stockée.
Note: Contrairement à de nombreux autres mécanismes dans PHP, les variables stockées utilisant apcu_add() persisteront entre les requêtes (jusqu'à ce que leurs valeurs soient retirées du cache).
key
Stocke la variable en utilisant ce nom de clé. Chaque clé est unique dans le cache,
essayer d'utiliser apcu_add() pour stocker une donnée avec une
valeur du paramètre key
déjà existante ne va pas réécrire sur la
donnée mais va retourner la valeur false
. (C'est l'unique différence entre
les fonctions apcu_add() et apcu_store().)
var
La variable à stocker.
ttl
Durée de vie; stocke la variable var
dans le cache pour
une durée de ttl
secondes. Après l'expiration de
ttl
, la variable stockée sera retirée du cache (à la
prochaine requête). Si aucune valeur n'est passée à
ttl
(ou si la valeur de ttl
est
0
), la variable persistera jusqu'à qu'elle soit retirée
manuellement du cache, ou, sinon, elle échouera à sortir du cache (lors d'un
effaçage, redémarrage, etc.).
values
Les noms sont fournis par les clés du tableau values
,
les variables par les valeurs.
Retourne TRUE si une variable a effectivement été ajoutée au cache, FALSE sinon. La seconde syntaxe retourne un tableau avec les clés erronées.
Exemple #1 Un exemple avec 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";
?>
L'exemple ci-dessus va afficher :
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');