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 false
var_dump($Memcached->getResultCode()); // int 0 which is Memcached::RES_SUCCESS
?>
Or just make sure the values are not false :)
Memcached::get
(PECL memcached >= 0.1.0)
Memcached::get — Retrieve an item
Description
Memcached::get() returns the item that was previously stored under the key . If the item is found and cas_token variable is provided, it will contain the CAS token value for the item. See Memcached::cas for how to use CAS tokens. Read-through caching callback may be specified via cache_cb parameter.
Parameters
- key
-
The key of the item to retrieve.
- cache_cb
-
Read-through caching callback or NULL.
- cas_token
-
The variable to store the CAS token in.
Return Values
Returns the value stored in the cache or FALSE otherwise. The Memcached::getResultCode will return Memcached::RES_NOTFOUND if the key does not exist.
Examples
Example #1 Memcached::get() example #1
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('foo', 100);
var_dump($m->get('foo'));
?>
The above example will output:
int(100)
Example #2 Memcached::get() example #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 */
/* ... */
}
}
?>
See Also
- Memcached::getByKey - Retrieve an item from a specific server
- Memcached::getMulti - Retrieve multiple items
- Memcached::getDelayed - Request multiple items
Memcached::get
17-Jul-2009 06:31
