update page now

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_setДобавляет или перезаписывает переменную в пользовательский кеш

Описание

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

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

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

key

Параметр key — имя переменной, с которым значение сохраняется в кеше. Функция перезапишет предыдущее значение новым, если переменная с ключом key уже содержится в кеше. Параметр key чувствителен к регистру. Параметр key также принимает массив пар «имя => значение», где имя — ключ значения. Массив передают для добавления в кеш набора значений за одну операцию и чтобы исключить состояние гонки.

value

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

values

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

ttl

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

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

При передаче в параметр key строки функция возвращает true, если завершилась успешно, или false, если возникла ошибка.

При передаче в параметр key массива функция возвращает:

  • Пустой массив, если все пары «имя => значение» в массиве возможно установить;
  • Значение false, если ни одну пару «имя => значение» из массива невозможно установить;
  • Массив пар «имя => значение», которые не добавились в пользовательский кеш, если одни пары возможно установить, а другие — нет.

Примеры

Пример #1 Пример добавления или перезаписи переменной в пользовательском кеше по строковому ключу key функцией wincache_ucache_set()

<?php

$bar
= 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));

$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));

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

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

Пример #2 Пример добавления или перезаписи переменной в пользовательском кеше функцией wincache_ucache_set() с передачей в параметре key массива

<?php

$colors_array
= array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');

var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

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

array(0) {}
array(0) {}
string(1) "6"

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

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

Добавить

Примечания пользователей 1 note

up
0
don dot raman at microsoft dot com
16 years ago
As of writing this note (PHP 5.3.1) serialization of closure is not allowed.

This means a code like the one below:

<?php
//Closure
$bar3 = function($a) {
    return $a * 2;
};
wincache_ucache_set('foo3', $bar3);
var_dump(wincache_ucache_get('foo3'));
echo "<br>";
?> 

Will throw exception:
[11-Feb-2010 09:25:33] PHP Fatal error:  Uncaught exception 'Exception' with message 'Serialization of 'Closure' is not allowed' in C:\inetpub\wwwroot\phptest\tests\ucache\wincache15.php:6
Stack trace:
#0 C:\inetpub\wwwroot\phptest\tests\ucache\wincache15.php(6): wincache_ucache_set('foo3', Object(Closure))
#1 {main}
  thrown in C:\inetpub\wwwroot\phptest\tests\ucache\wincache15.php on line 6

However one catch this exception like:
<?php
//Closure
$bar3 = function($a) {
    return $a * 2;
};
try
{
    wincache_ucache_set('foo3', $bar3);
}
catch (Exception $e)
{
    var_dump($e->getMessage());
}
var_dump(wincache_ucache_get('foo3'));
echo "<br>";
?> 

This will generate output as shown beloe:
string(41) "Serialization of 'Closure' is not allowed" NULL
To Top