PHP 8.5.0 Alpha 1 available for testing

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::incrementIncrementa numéricamente un elemento

Descripción

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

Memcached::increment() incrementa el valor numérico de offset unidades. Si el elemento no es numérico, se generará un error. Memcached::increment() establecerá el elemento al valor del argumento initial_value si la clave no existe.

Parámetros

key

La clave del elemento a incrementar.

offset

La cantidad con la que aumentar el elemento.

initial_value

El valor a utilizar para definir el elemento si no existe.

expiry

El tiempo de expiración para definir el elemento.

Valores devueltos

Devuelve el nuevo valor del elemento, en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con 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');
// ^ fallará debido a que el valor del elemento no es numérico
var_dump($n);
?>

El resultado del ejemplo sería:

int(11)
bool(false)

Ver también

add a note

User Contributed Notes 5 notes

up
25
Anonymous
12 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
12 years ago
PECL memcached < 0.2.0

public int Memcached::increment ( string $key [, int $offset = 1 ] )
up
12
Sam
13 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.
up
0
raheut dot rahwana at duck dot com
13 days ago
// Fix for "Memcached::increment(): Initial value is only supported with binary protocol"
$m = new Memcached();
$m->addServer('localhost', 11211);

// Option 1: Or, add the key first to avoid needing initial value support
$m->add($key, $initial_value, $expiry);
$m->increment($key, $offset);

// Option 2: Use binary protocol to support initial value in increment()
$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$m->increment($key, $offset, $initial_value, $expiry);

Tested on PHP 8.4.8
To Top
OSZAR »