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 — Updates an old value with a new value
apcu_cas() updates an already existing integer value if the
old
parameter matches the currently stored value
with the value of the new
parameter.
key
The key of the value being updated.
old
The old value (the value currently stored).
new
The new value to update to.
Restituisce true
in caso di successo, false
in caso di fallimento.
Example #1 apcu_cas() example
<?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;
?>
Il precedente esempio visualizzerĂ qualcosa simile a:
$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