PHPverse 2025

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set Adiciona uma variável no cache do usuário e substitui uma variável se ela já existir no cache

Descrição

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

Adiciona uma variável ao cache do usuário. Substitui uma variável se ela já existir no cache. A variável adicionada ou atualizada permanece no cache do usuário, a menos que seu tempo de vida expire ou seja excluída usando as funções wincache_ucache_delete() ou wincache_ucache_clear().

Parâmetros

key

Armazene a variável usando este nome key. Se uma variável com o mesmo key já estiver presente, a função substituirá o valor anterior pelo novo. key diferencia maiúsculas de minúsculas. key também pode receber um array de pares nome => valor, onde os nomes serão usados ​​como chaves. Isso pode ser usado para adicionar vários valores ao cache em uma única operação, evitando assim condições de corrida.

value

Valor de uma variável a ser armazenada. Value suporta todos os tipos de dados, exceto recursos, como identificadores de arquivo. Este parâmetro é ignorado se o primeiro argumento for um array. Uma orientação geral é passar null como value enquanto usa array como key. Se value for um objeto ou um array contendo objetos, os objetos serão serializados. Consulte __sleep() para obter detalhes sobre a serialização de objetos.

values

Array associativo de chaves e valores.

ttl

Tempo que a variável permanece no cache em segundos. Após o valor especificado em ttl ser excedido, a variável armazenada será excluída do cache. Este parâmetro assume o valor padrão de 0, o que significa que a variável permanecerá no cache, a menos que seja explicitamente excluída usando as funções wincache_ucache_delete() ou wincache_ucache_clear().

Valor Retornado

Se key for uma string, a função retornará true em caso de sucesso e false em caso de falha.

Se key for um array, a função retornará:

  • Se todos os pares nome => valor no array puderem ser definidos, a função retornará um array vazio;
  • Se todos os pares nome => valor no array não puderem ser definidos, a função retornará false;
  • Se alguns puderem ser definidos enquanto outros não, a função retornará um array com par nome=>valor para o qual a adição falhou no cache do usuário.

Exemplos

Exemplo #1 wincache_ucache_set() com key sendo uma string

<?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'));
?>

O exemplo acima produzirá:

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

Exemplo #2 wincache_ucache_set() com key sendo um array

<?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'));
?>

O exemplo acima produzirá:

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
0
don dot raman at microsoft dot com
15 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