(PECL memcached >= 0.1.0)
Memcached::getMulti — Retrieve multiple items
   Memcached::getMulti() is similar to
   Memcached::get(), but instead of a single key
   item, it retrieves multiple items the keys of which are specified in the
   keys array.
   
Note:
Before v3.0 a second argument
&cas_tokenswas in use. It was filled with the CAS token values for the found items. The&cas_tokensparameter was removed in v3.0 of the extension. It was replaced with a new flagMemcached::GET_EXTENDEDthat needs is to be used as the value forflags.
   The flags parameter can be used to specify
   additional options for Memcached::getMulti().
   Memcached::GET_PRESERVE_ORDER ensures that the
   keys are returned in the same order as they were requested in.
   Memcached::GET_EXTENDED ensures that the
   CAS tokens will be fetched too.
  
keysArray of keys to retrieve.
flagsThe flags for the get operation.
   Returns the array of found items or false on failure.
   Use Memcached::getResultCode() if necessary.
  
| Version | Description | 
|---|---|
| PECL memcached 3.0.0 | The &cas_tokensparameter was removed.
       TheMemcached::GET_EXTENDEDwas added and when passed as a flag it ensures the CAS tokens to be fetched. | 
Example #1 Memcached::getMulti() example for Memcached v3
<?php
// Valid for v3 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'));
var_dump($result);
?>
The above example will output something similar to:
array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
Example #2 Memcached::getMulti() example for Memcached v1 and v2
<?php
// Valid for v1 and v2 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>
The above example will output something similar to:
array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}
Example #3 Memcached::GET_PRESERVE_ORDER example for Memcached v3
<?php
// Valid for v3 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);
$m->setMulti($data, 3600);
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);
foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>
The above example will output something similar to:
foo foo-data bar bar-data baz baz-data lol lol-data kek kek-data zoo
Example #4 Memcached::GET_PRESERVE_ORDER example for Memcached v1 and v2
<?php
// Valid for v1 and v2 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);
$m->setMulti($data, 3600);
$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);
foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>
The above example will output something similar to:
foo foo-data bar bar-data baz baz-data lol lol-data kek kek-data zoo
