cache statique
En d'autres termes
cache dans une variable statique
Définition
Technique d'accélération couramment utilisée dans les scripts PHP, consistant à conserver dans une variable statique d'une fonction une donnée calculée lors de la première invocation de celle-ci, pour éviter d'avoir à la recalculer.
La donnée peut être un simple résultat, ou construite au fil des appels successifs à la fonction, comme dans l'exemple suivant.
Exemple
L'exemple suivant est tiré du CMS Drupal 6.9, fichier includes/menu.inc
version 1.255.2.27.
<?php
/**
* Build a list of named menus.
*/
function menu_get_names($reset = FALSE) {
static $names;
if ($reset || empty($names)) {
$names = array();
$result = db_query("SELECT DISTINCT(menu_name) FROM {menu_links} ORDER BY menu_name");
while ($name = db_fetch_array($result)) {
$names[] = $name['menu_name'];
}
}
return $names;
}
?>
Cette construction tire parti du fait que les variables statiques en PHP sont initialisées à la valeur NULL, qui ne peut plus survenir lorsque la fonction a déjà placé un contenu dans la variable lors d'une invocation ultérieure, les appels successifs à la fonction tranformant cette variable en tableau et lui ajoutant des lignes.
Dans cet exemple, la présence du paramètre $reset
fournit un moyen de réinitialiser le cache.