實際上,當您傳遞一個回呼函式時,方法不會立即返回,而是會等待結果並呼叫回呼函式。(PECL memcached >= 0.1.0)
Memcached::getDelayed — 請求多個項目
Memcached::getDelayed() 會向 memcache 發出請求,以取得多個項目,這些項目的鍵值指定於 keys 陣列中。此方法不會等待回應,會立即返回。當您準備好收集項目時,請呼叫 Memcached::fetch() 或 Memcached::fetchAll()。如果 with_cas 為 true,也會請求 CAS 權杖值。
除了明確提取結果之外,您還可以透過 value_cb 參數指定 結果回呼。
成功時返回 true,失敗時返回 false。如有需要,請使用 Memcached::getResultCode()。
範例 #1 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());
?>上述範例將輸出
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)
}
}