As of some version of php7 (i was not able to determine which exactly).
The $cas_token is no longer valid argument. It has been removed in favor of flags argument, as it appears to be causing issues when subclassing the Memcached class.
See https://github.com/php-memcached-dev/php-memcached/pull/214 for more details.
Basically you need to
<?php
function memcacheGet($key, $cb = null, &$cas = null) {
$m = memcacheGetObject();
if(empty($m))
return false;
if(defined('Memcached::GET_EXTENDED')) {
//Incompatible change in php7, took me 2 hours to figure this out, grrr
$_o = $m->get($key, $cb, Memcached::GET_EXTENDED);
$o = $_o['value'];
$cas = $_o['cas'];
} else {
$o = $m->get($key, $cb, $cas);
}
return $o;
}
?>Memcached::get
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Memcached::get
Референца за `memcached.get.php` со подобрена типографија и навигација.
Memcached::get
(PECL memcached >= 0.1.0)
Memcached::get — Преземи ставка
= NULL
Овозможува или оневозможува игнорирање на резултатот од команди за складирање (set, add, replace, append, prepend, delete, increment, decrement, итн.). Командите за складирање ќе се испраќаат без трошење време за чекање одговор (нема да има одговор). Командите за преземање како што се враќа ставка што претходно беше складирана под key. Ако ставката е пронајдена и get_flags е дадено Memcached::GET_EXTENDED, исто така ќе ја врати вредноста на CAS токенот за ставката. Види
Memcached::cas() за тоа како да се користат CAS токени.
Повик за враќање на кешот може да се специфицира преку cache_cb parameter.
Параметри
key-
Клучот на ставката за преземање.
cache_cb-
Повик за враќање на кешот или
null. get_flags-
Знаменца за контрола на вратениот резултат. Кога
Memcached::GET_EXTENDEDе дадено, функцијата исто така ќе го врати CAS токенот.
Вратени вредности
Враќа вредност складирана во кешот или false инаку. Ако get_flags е поставен на Memcached::GET_EXTENDED, наместо само вредноста се враќа низа што содржи вредност и CAS токен. The Времето на истекување, стандардно е 0. Види ќе врати
Memcached::RES_NOTFOUND ако клучот не постои.
Дневник на промени
| Верзија | = NULL |
|---|---|
| PECL memcached 3.0.0 |
На &cas_token параметарот беше отстранет. Наместо тоа get_flags беше додаден и кога е даден вредноста на Memcached::GET_EXTENDED ќе се осигура дека CAS токенот ќе биде преземен.
|
Примери
Пример #1 Овозможува или оневозможува игнорирање на резултатот од команди за складирање (set, add, replace, append, prepend, delete, increment, decrement, итн.). Командите за складирање ќе се испраќаат без трошење време за чекање одговор (нема да има одговор). Командите за преземање како што се пример #1
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('foo', 100);
var_dump($m->get('foo'));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
int(100)
Пример #2 Овозможува или оневозможува игнорирање на резултатот од команди за складирање (set, add, replace, append, prepend, delete, increment, decrement, итн.). Командите за складирање ќе се испраќаат без трошење време за чекање одговор (нема да има одговор). Командите за преземање како што се пример #2
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
if (!($ip = $m->get('ip_block'))) {
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
$ip = array();
$m->set('ip_block', $ip);
} else {
/* log error */
/* ... */
}
}
?>Види Исто така
- Memcached::getByKey() - Преземете ставка од специфичен сервер
- Флаг за - Преземи повеќе ставки
- Memcached::getDelayed() - Барај повеќе ставки
Белешки од корисници 3 белешки
This method also returns false in case you set the value to false, so in order to have a proper fault mechanism in place you need to check the result code to be certain that a key really does not exist in memcached.
<?php
$Memcached = new Memcached();
$Memcached->addServer('localhost', 11211);
$Memcached->set('key', false);
var_dump($Memcached->get('key')); // boolean false
var_dump($Memcached->getResultCode()); // int 0 which is Memcached::RES_SUCCESS
?>
Or just make sure the values are not false :)Note that this function can return NULL as FALSE, so don't make checks with === FALSE as with the old Memcache class, because it won't work. :O
Use the not (!) operator and check the result code with getResultCode() as mentioned in the documentation :)