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 не задан (или ttl задан как 0), значение будет храниться пока не будет удалено явно, либо по технической причине (очистка кеша, перезапуск и т.д.)

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() - Удаляет сохранённое значение из кеша

Добавить

Примечания пользователей 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