CakeFest 2024: The Official CakePHP Conference

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_addДобавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше

Описание

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

Добавляет переменную в пользовательский кеш, только если эта переменная ещё не существует в кеше. Добавленная переменная остаётся в пользовательском кеше, пока не истечёт срок её действия или она не будет удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Список параметров

key

Сохраняет переменную с использованием этого имени key. Если переменная с таким же key уже существует, завершится ошибкой и вернёт false. key чувствителен к регистру. Чтобы переопределить значение, даже если key уже существует, используйте функцию wincache_ucache_set(). key также может принимать массив пар имя => значение, где имена будут использоваться в качестве ключей. Это можно использовать для добавления нескольких значений в кеш за одну операцию, что позволяет избежать состояния гонки.

value

Значение переменной, которую необходимо сохранить. Value поддерживает все типы данных, кроме ресурсов, таких как дескрипторы файлов. Параметр игнорируется, если первым аргументом является массив. Общее руководство - передать null в качестве value при использовании массива key. Если value является объектом или массивом, содержащим объекты, то объекты будут сериализованы. Подробнее о сериализации объектов смотрите в описании __sleep().

values

Ассоциативный массив ключей и значений.

ttl

Время, в течение которого переменная находится в кеше, в секундах. После того, как значение, указанное в ttl будет передано, сохранённая переменная будет удалена из кеша. Параметр принимает значение по умолчанию 0, что означает, что переменная останется в кеше, пока она не будет явно удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Возвращаемые значения

Если key является строкой, функция возвращает true в случае успешного выполнения и false в случае возникновения ошибки.

Если key является массивом, функция возвращает:

  • Если все пары имя => значение в массиве могут быть установлены, функция возвращает пустой массив;
  • Если все пары имя => значение в массиве не могут быть установлены, функция возвращает false;
  • Если некоторые из них могут быть установлены, а другие - нет, функция возвращает массив с парами name => value, которые не удалось добавить в пользовательский кеш.

Примеры

Пример #1 Пример использования wincache_ucache_add() с key в виде строки

<?php
$bar
= 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

Результат выполнения приведённого примера:

bool(true)
bool(false)
string(3) "BAR"

Пример #2 Пример использования wincache_ucache_add() с key в виде массива

<?php
$colors_array
= array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Результат выполнения приведённого примера:

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Смотрите также

  • wincache_ucache_set() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • __sleep()

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top