Memcached::get

(PECL memcached >= 0.1.0)

Memcached::getRecupera um item

Descrição

public Memcached::get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed

Memcached::get() retorna o item que foi armazenado anteriormente na key. Se o item for encontrado e o get_flags for fornecido como Memcached::GET_EXTENDED, ele também retornará o valor do token CAS para o item. Consulte Memcached::cas() para saber como usar tokens CAS. O callback de cache de leitura pode ser especificado por meio do parâmetro cache_cb.

Parâmetros

key

A key do item a ser recuperado.

cache_cb

Callback de cache de leitura ou null.

get_flags

Flags para controlar o resultado retornado. Quando Memcached::GET_EXTENDED for fornecido, a função também retornará o token CAS.

Valor Retornado

Retorna o valor armazenado no cache ou false caso contrário. Se o parâmetro get_flags for definido como Memcached::GET_EXTENDED, um array contendo o valor e o token CAS será retornado em vez de apenas o valor. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Registro de Alterações

Versão Descrição
PECL memcached 3.0.0 O parâmetro &cas_token foi removido. Em vez disso, as get_flags foram adicionadas e, quando receber o valor de Memcached::GET_EXTENDED, garantirá que o token CAS seja buscado.

Exemplos

Exemplo #1 Memcached::get() exemplo #1

<?php
$m
= new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

O exemplo acima produzirá:

int(100)

Exemplo #2 Memcached::get() exemplo #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 */
/* ... */
}
}
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 3 notes

up
12
letynsoft at gmail dot com
8 years ago
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 <?phpfunction 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;}?>
up
10
miha at hribar dot info
16 years ago
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 falsevar_dump($Memcached->getResultCode());  // int 0 which is Memcached::RES_SUCCESS?>Or just make sure the values are not false :)
up
-2
denis_truffaut[A-T]hotmail[D-O-T]com
14 years ago
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 :)
To Top