The output in the example says:
$f__bar == 1 ? 2 : 1 = fail
but in reality it should be:
$f__bar == 1 ? 2 : 1 = ok
the first time the code is ran as the cache is empty and apcu_cas allows the key to be inserted.
(PECL apcu >= 4.0.0)
apcu_cas — Заменяет старое значение на новое
apcu_cas() заменяет значение уже существующего целочисленного
значения, если оно равно old
на
new
.
key
Ключ изменяемого значения.
old
Старое значение (которое в данный момент хранится в кеше).
new
Новое значение.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Пример использования apcu_cas()
<?php
apcu_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apcu_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apcu_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
echo '$f__bar == 1 ? 2 : 1 = ', (apcu_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
apcu_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apcu_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;
echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
?>
Вывод приведённого примера будет похож на:
$foobar = 2 $foobar == 1 ? 2 : 1 = fail $foobar == 2 ? 1 : 2 = ok $foobar = 1 $f__bar == 1 ? 2 : 1 = fail $perfection == 2 ? 1 : 2 = epic fail $foobar = 1