為此困擾了很久。仔細閱讀更新日誌的話
- 當數值不存在時(使用二進位協定時),讓遞增/遞減初始化數值。
如果您沒有設定可選的二進位協定,初始化值的參數只會返回錯誤 38 - 參數無效。這點沒有記錄在文件中。
(PECL memcached >= 0.1.0)
Memcached::increment — 增加數值項目的值
$key
,$offset
= 1,$initial_value
= 0,$expiry
= 0
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)