PHP Conference Nagoya 2025

apcu_store

(PECL apcu >= 4.0.0)

apcu_store 変数をデータ領域にキャッシュする

説明

apcu_store(string $key, mixed $var, int $ttl = 0): bool
apcu_store(array $values, mixed $unused = NULL, int $ttl = 0): array

変数をデータ領域にキャッシュします。

注意: PHP の他の多くの仕組みと異なり、apcu_store() を用いて格納された変数はリクエストを超えて (その値がキャッシュから取り除かれるまで)持続します。

パラメータ

key

この名前を用いて変数を格納します。key は キャッシュ内で一意です。そのため、同一の key で新しい値を格納すると、元の値は上書きされます。

var

格納する変数。

ttl

有効期間。var は、キャッシュに ttl 秒間だけ格納されます。 ttl が経過すると、格納されている変数は (次のリクエスト時に)キャッシュから削除されます。 ttl が指定されていない(あるいは ttl0 の場合)は、 キャッシュから手動で削除される・あるいはキャッシュに存在できなくなる (clear, restart など)まで値が持続します。

values

名前をキー、変数を値に指定します。

戻り値

成功した場合に true を、失敗した場合に false を返します。 二番目の構文は、エラーになったキーを含む配列を返します。

例1 apcu_store() の例

<?php
$bar
= 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

上の例の出力は以下となります。

string(3) "BAR"

参考

  • apcu_add() - 新規の変数をデータ領域にキャッシュする
  • apcu_fetch() - 格納されている変数をキャッシュから取得する
  • apcu_delete() - 格納されている変数をキャッシュから取り除く

add a note

User Contributed Notes 1 note

up
2
info at qmegas dot info
3 years ago
Be careful when updating same key with ttl set during same request. For example:
<?php
for ($i = 0; $i < 20; $i++) {
apcu_store('test', $i, 10);
sleep(1);
}
?>

After 10 seconds the key will become not available and won't be updated. Tested on Windows and Linux platforms. Not sure if it's a bug or undocumented behavior.
To Top