Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.(PECL memcached >= 0.1.0)
Memcached::getDelayed — Solicita vários itens
Memcached::getDelayed() emite uma solicitação ao memcache
para vários itens cujas chaves são especificadas no
array keys. O método não espera resposta e retorna
imediatamente. Quando estiver pronto para coletar os itens, chame
Memcached::fetch() ou
Memcached::fetchAll(). Se with_cas
for true, os valores do token CAS também serão solicitados.
Em vez de buscar os resultados explicitamente, você pode especificar um callback de resultado via
o parâmetro value_cb.
keysArray de chaves a ser recuperado.
with_casSe os valores de token CAS também devem ser solicitados.
value_cb
O resultado de callback ou null.
Retorna true em caso de sucesso ou false em caso de falha.
Use Memcached::getResultCode() se necessário.
Exemplo #1 Exemplo de Memcached::getDelayed()
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>O exemplo acima produzirá:
array(2) {
[0]=>
array(3) {
["key"]=>
string(3) "int"
["value"]=>
int(99)
["cas"]=>
float(2363)
}
[1]=>
array(3) {
["key"]=>
string(5) "array"
["value"]=>
array(2) {
[0]=>
int(11)
[1]=>
int(12)
}
["cas"]=>
float(2365)
}
}
Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.