ConFoo 2025

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrémente numériquement un élément

Description

public Memcached::increment(
    string $key,
    int $offset = 1,
    int $initial_value = 0,
    int $expiry = 0
): int|false

Memcached::increment() incrémente la valeur numérique de offset unités. Si l'élément n'est pas numérique, une erreur sera émise. Memcached::increment() va définir l'élément à la valeur du paramètre initial_value si la clé n'existe pas.

Liste de paramètres

key

La clé de l'élément à incrémenter.

offset

La quantité avec laquelle augmenter l'élément.

initial_value

La valeur à utiliser pour définir l'élément s'il n'existe pas.

expiry

Le délai d'expiration pour définir l'élément.

Valeurs de retour

Retourne la nouvelle valeur de l'élément, en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::getResultCode()

<?php
$m
= new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ va échouer en raison du fait que la valeur de l'élément n'est pas un numérique
var_dump($n);
?>

L'exemple ci-dessus va afficher :

int(11)
bool(false)

Voir aussi

add a note

User Contributed Notes 4 notes

up
24
Anonymous
11 years ago
Spent a long time frustrated with this. If you read the patch notes carefully:

- Make increment/decrement initialize value when it is not available (when using binary protocol).

If you dont have the opt binary protocol set the arguments for initial value just return an error 38 - INVALID ARGUMENTS. This is not documented.
up
8
jbaginski
11 years ago
PECL memcached < 0.2.0

public int Memcached::increment ( string $key [, int $offset = 1 ] )
up
12
Sam
12 years ago
increment does not alter the time to live of the object.
up
5
Anonymous
11 years ago
If it'll save others some head-scratching, the PECL Memcached extension only supports initializing increment (or decrement) values from 2.0.0b2 onwards - i.e. not the version (1.0.2) that comes out of the box with Ubuntu 12.04.
To Top