International PHP Conference Berlin 2025

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment数値アイテムの値を増やす

説明

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

Memcached::increment() は、数値アイテムの値を offset で指定しただけ増やします。 アイテムの値が数値でない場合はエラーとなります。 アイテムが存在しない場合、Memcached::increment() は値を initial_value に設定します。

パラメータ

key

増やしたいアイテムのキー。

offset

値を増やしたい量。

initial_value

そのアイテムが存在しない場合に設定する値。

expiry

そのアイテムに設定する有効期限。

戻り値

成功した場合にアイテムの新しい値、失敗した場合に false を返します。

例1 Memcached::increment() の例

<?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');
// アイテムの値が数値でないので、これは失敗します
var_dump($n);
?>

上の例の出力は以下となります。

int(11)
bool(false)

参考

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