php[tek] 2018 : Call for Speakers

apc_add

(PECL apc >= 3.0.13)

apc_add Кэшировать переменную в хранилище данных

Описание

bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Кэширует переменную в хранилище данных, только если она ещё не закеширована.

Замечание: В отличии от многих других механизмов в PHP, переменные, сохраненные с использованием apc_add(), будут сохранены между запросами (пока значение не будет удалено из кэша).

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

key

Сохраняет переменную, используя это имя. Ключи (key) уникальны для кэша, так, попытка использования apc_add() для сохранения данных с ключом, который уже существует, не перезапишет существующие данные, и вместо этого возвратит FALSE. (Это единственное различие между apc_add() и apc_store().)

var

Переменная для хранения

ttl

Время жизни; хранить var в кэше ttl секунд. После истечения ttl, сохраненная переменная будет удалена из кэша (при следующем запросе). Если никакого значения ttl не указано (или если ttl равно 0), то значение хранится, пока оно не будет удалено из кэша вручную, или не сможет существовать в кэше (очистка, перезапуск, и т.д.).

values

Имена в ключах, переменные в значениях.

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

возвращает TRUE в случае успешного добавления и FALSE в случае ошибки. Второй синтаксис возвращает массив с ошибочными ключами.

Примеры

Пример #1 Пример использования apc_add()

<?php
$bar 
'BAR';
apc_add('foo'$bar);
var_dump(apc_fetch('foo'));
echo 
"\n";
$bar 'NEVER GETS SET';
apc_add('foo'$bar);
var_dump(apc_fetch('foo'));
echo 
"\n";
?>

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

string(3) "BAR"
string(3) "BAR"

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

  • apc_store() - Кэшировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кэша
  • apc_delete() - Удалить сохраненную переменную из кэша

add a note add a note

User Contributed Notes 1 note

up
10
liv_romania at yahoo dot com
2 years ago
In order to understand better how APC caching works you can do the following:

1. Restart web server (Apache or Nginx)

2. Create file "apc_fetch.php":
<?php
var_dump
(apc_fetch(array(
   
'CUR_DATE_5s_1',
   
'CUR_DATE_5s_2',
   
'CUR_DATE_5s_3',
   
'CUR_DATE_0s_1',
   
'CUR_DATE_0s_2',
   
'CUR_DATE_0s_3',
)));
?>

3. Create file "apc_add.php":
<?php
$ttl
= 5;

$key = 'CUR_DATE_5s_1';
$var = date('c');
$result = apc_add($key, $var, $ttl);
var_dump($result);
echo
"\n";

$var = date('c');
$result = apc_add($key, $var, $ttl);
var_dump($result);
echo
"\n";

$key = 'CUR_DATE_0s_1';
$var = date('c');
$result = apc_add($key, $var);
var_dump($result);
echo
"\n";

$values = array(
   
'CUR_DATE_5s_2' => date('c'),
   
'CUR_DATE_5s_3' => rand(),
);
$result = apc_add($values, null, $ttl);
var_dump($result);
echo
"\n";

$values = array(
   
'CUR_DATE_0s_2' => date('c'),
   
'CUR_DATE_0s_3' => rand(),
);
$result = apc_add($values, null);
var_dump($result);
?>

4. Run "apc_fetch.php" and "apc_add.php" several times in order to see the persistent result and how values change from one request to another.
To Top