The method correctly returns false if you set the value to false. This means that in order to have proper fault checking mechanism in place you need to check the result code.
<?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
?>
Memcached::set
(PECL memcached >= 0.1.0)
Memcached::set — アイテムを格納する
説明
Memcached::set() は、 指定したキー key で memcache サーバ上に value を格納します。 expiration パラメータで、 この値をいつ有効期限切れにするのかを制御することができます。
値に指定できるのは、リソース型以外の PHP の任意の型です。 リソース型はシリアライズすることができないため、使用することができません。 Memcached::OPT_COMPRESSION オプションをオンにすると、 シリアライズしたデータを格納する前に圧縮を行います。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。 必要に応じて Memcached::getResultCode を使用しましょう。
例
例1 Memcached::set() の例
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);
var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>
上の例の出力は、 たとえば以下のようになります。
int(99)
string(15) "a simple string"
array(2) {
[0]=>
int(11)
[1]=>
int(12)
}
object(stdClass)#1 (0) {
}
参考
- Memcached::setByKey - 指定したサーバにアイテムを格納する
- Memcached::add - アイテムを新しいキーで追加する
- Memcached::replace - 既存のキーのアイテムを入れ替える
Memcached::set
miha at hribar dot info
17-Jul-2009 12:26
17-Jul-2009 12:26
