PHP 8.6.0 Beta 3 is available for testing

Yac::delete

(PECL yac >= 1.0.0)

Yac::deleteSupprime des éléments du cache

Description

public function Yac::delete(string|array $key, int $delay = 0): bool

Supprime un ou plusieurs éléments du cache.

Note:

La suppression est implémentée en marquant l'entrée comme expirée plutôt qu'en vidant son slot : l'entrée cesse immédiatement d'être lisible, mais le slot reste occupé jusqu'à ce que la même clé soit stockée à nouveau ou qu'une écriture ultérieure le récupère. En conséquence, le nombre de slots utilisés rapporté par Yac::info() ne diminue pas après une suppression, et Yac::dump() liste toujours l'entrée supprimée jusqu'à ce que son slot soit recyclé ; un ttl non nul dans le passé indique une entrée supprimée ou expirée, il appartient donc à l'appelant de les filtrer dans la sortie de Yac::dump().

Liste de paramètres

key

Une clé string, ou un array de clés à supprimer.

delay

Nombre de secondes avant que l'élément devienne invalide. Quand omis ou 0, l'élément est invalidé immédiatement. Une valeur positive garde l'élément lisible pendant ce nombre de secondes avant qu'il expire.

Valeurs de retour

Retourne true en cas de succès, ou false si la clé n'était pas présente dans le cache. Comme une suppression ne fait que marquer l'entrée comme expirée, une clé supprimée mais pas encore écrasée est toujours considérée comme présente : supprimer la même clé à nouveau retourne true.

Quand un array de clés est fourni, true est retourné uniquement si toutes les clés étaient présentes ; si une clé est absente, false est retourné.

Exemples

Exemple #1 Exemple avec Yac::delete()

<?php
$yac = new Yac();
$yac->set("foo", "bar");

var_dump($yac->delete("foo"));      // bool(true) : marquée expirée
var_dump($yac->get("foo"));         // bool(false) : manquant désormais
var_dump($yac->delete("foo"));      // bool(true) à nouveau : le slot n'a pas
                                     // encore été écrasé
var_dump($yac->delete("jamais"));   // bool(false) : jamais stockée

// une suppression ne libère pas le slot : slots_used ne diminue pas, et
// l'entrée expirée apparaît toujours dans le dump
var_dump($yac->info()["slots_used"]); // int(1)
print_r($yac->dump());                // "foo" est toujours listée ; son ttl
                                       // est dans le passé
?>

Exemple #2 Suppression différée

<?php
$yac = new Yac();

// garder l'entrée lisible encore 60 secondes avant qu'elle expire
$yac->set("tmp", "value");
var_dump($yac->delete("tmp", 60));    // bool(true)
?>

Exemple #3 Suppression de plusieurs clés en un appel

<?php
$yac = new Yac();
$yac->set("tmp", "value");

// retourne true uniquement si toutes les clés étaient présentes
var_dump($yac->delete(array("tmp", "non"))); // bool(false) : "non" absente
?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top