Les fonctions apc_add et apc_store permettent toutes deux de stocker une variable en mémoire partagée.
La grande différence entre apc_add et apc_store est que la première (apc_add) ajoute une variable uniquement si celle ci n'est pas présente dans le cache apc ou si son ttl (time to live) est dépassé (la variable n'est donc plus valide), le cas échéant l'ancienne valeur est préservée dans le cache mémoire et apc_add retourne false.
La seconde (apc_store) stocke la variable en mémoire quelques soit la valeur préalable dans le cache utilisateur avec le nouveau ttl et la nouvelle valeur.
Maintenant pour ceux qui ne comprennent pas la prose un peu de code :
Comportement de apc_add
<?php
var_dump(apc_fetch('mavar'));
var_dump(apc_add('mavar',date('H:i:s'),60));
var_dump(apc_fetch('mavar'));
?>
Premier appel :
boolean false
boolean true
string '19:31:42'
Appel avant timeout de la variable :
string '19:31:42'
boolean false
string '19:31:42'
Appel aprés timeout :
boolean false
boolean true
string '19:34:16'
Comportement de apc_store
<?php
var_dump(apc_fetch('mavar'));
var_dump(apc_store('mavar',date('H:i:s'),60));
var_dump(apc_fetch('mavar'));
?>
Premier appel :
boolean false
boolean true
string '19:37:42'
Appel avant timeout :
string '19:37:42'
boolean true
string '19:38:10'
Appel aprés timeout :
boolean false
boolean true
string '19:41:09'
Image : teclasorg