PHP 8.4.2 Released!

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrementa o valor do item numérico

Descrição

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

Memcached::increment() incrementa o valor de um item numérico pelo offset especificado. Se o valor do item não for numérico, ocorrerá um erro. Memcached::increment() irá definir o item para o parâmetro initial_value se a key não existir.

Parâmetros

key

A key do item a incrementar.

offset

A quantia pela qual incrementar o valor do item.

initial_value

O valor para definir o item se ele não existir no momento.

expiry

O tempo de expiração a ser definido no item.

Valor Retornado

Retorna o valor do novo item em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::increment() exemplo

<?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');
// ^ falhará devido ao valor do item não ser numérico
var_dump($n);
?>

O exemplo acima produzirá:

int(11)
bool(false)

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 4 notes

up
22
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
11
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