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.Memcached::increment
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Memcached::increment
Референца за `memcached.increment.php` со подобрена типографија и навигација.
Memcached::increment
(PECL memcached >= 0.1.0)
Memcached::increment — Зголеми вредност на нумеричка ставка
= NULL
string
$key,int
$offset = 1,int
$initial_value = 0,int
$expiry = 0): int|false
Memcached::decrement() ги зголемува вредноста на нумеричка ставка за наведената offset. Ако вредноста на ставката не е нумеричка, ќе резултира грешка.
Memcached::decrement() ќе ја постави ставката на
initial_value параметар ако клучот не постои.
Параметри
key-
Клучот на ставката за зголемување.
offset-
Износот за кој ќе се зголеми вредноста на ставката.
initial_value-
Вредноста што ќе се постави на ставката ако таа моментално не постои.
expiry-
Времето на истекување што ќе се постави на ставката.
Вратени вредности
Враќа нова вредност на ставката при успех или false при неуспех.
Примери
Пример #1 Memcached::decrement() example
<?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');
// ^ will fail due to item value not being numeric
var_dump($n);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
int(11) bool(false)
Види Исто така
- Memcached::decrementByKey() - Намали ја вредноста на нумеричка ставка
- (PECL memcached >= 2.0.0) - Намали ја вредноста на нумеричка ставка, зачувана на специфичен сервер
- Memcached::increment() - Зголеми вредност на нумеричка ставка, зачувана на специфичен сервер
Белешки од корисници 5 белешки
PECL memcached < 0.2.0
public int Memcached::increment ( string $key [, int $offset = 1 ] )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.// 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