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 — Lee varios elementos
Memcached::getDelayed() envía una orden a memcache para
leer varias claves que se especifican en el array keys.
El método no espera la respuesta y devuelve inmediatamente. Cuando se esté
listo para leer los elementos, se llaman los métodos Memcached::fetch() o
Memcached::fetchAll(). Si with_cas
es true también se leerá el CAS.
En lugar de leer los resultados explícitamente, se puede especificar una
función de devolución de llamada de resultados mediante
el argumento value_cb.
keysUn array de claves a leer.
with_casSi se deben leer los CAS.
value_cb
Una función de devolución de llamada de resultados, o null.
Esta función retorna true en caso de éxito o false si ocurre un error.
Use Memcached::getResultCode() if necessary.
Ejemplo #1 Ejemplo con 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());
?>El ejemplo anterior mostrará:
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.