范例中的输出为
$f__bar == 1 ? 2 : 1 = fail
但实际上应该是
$f__bar == 1 ? 2 : 1 = ok
第一次运行代码时,缓存为空,apcu_cas 允许插入键。
(PECL apcu >= 4.0.0)
apcu_cas — 使用新值更新旧值
apcu_cas() 更新已存在的整数值,如果 old
参数与当前存储的值匹配,则使用 new
参数的值更新。
key
正在更新的值的键。
old
旧值(当前存储的值)。
new
要更新的新值。
范例 #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