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).
keykey 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().)
varttlvar 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.).
valuesvalues,
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');