PHP Conference Japan 2024

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment增加數值項目的值

說明

public Memcached::increment(
    字串 $key,
    整數 $offset = 1,
    整數 $initial_value = 0,
    整數 $expiry = 0
): 整數|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)

另請參閱

新增註解

使用者貢獻的筆記 4 則筆記

匿名
11 年前
為此困擾了很久。仔細閱讀更新日誌的話

- 當數值不存在時(使用二進位協定時),讓遞增/遞減初始化數值。

如果您沒有設定可選的二進位協定,初始化值的參數只會返回錯誤 38 - 參數無效。這點沒有記錄在文件中。
jbaginski
11 年前
PECL memcached < 0.2.0

public int Memcached::increment ( string $key [, int $offset = 1 ] )
Sam
12 年前
遞增不會改變物件的存活時間。
匿名
11 年前
如果這能讓其他人少點疑惑,PECL Memcached 擴充套件僅從 2.0.0b2 版開始支援初始化遞增(或遞減)值,也就是說,Ubuntu 12.04 內建的版本 (1.0.2) 並不支援。
To Top