In case anyone is puzzled by the function name, "cas" refers to http://en.wikipedia.org/wiki/Compare-and-swap
(PECL apc >= 3.1.1)
apc_cas — Actualiza un valor anterior por un nuevo valor
$key
, int $old
, int $new
) : bool
apc_cas() actualiza un número entero existente si el parámetro
old
concuerda con el valor guardado actualmente con
el valor del parámetro new
.
key
La clave del valor a ser actualizado.
old
El valor anterior (el valor actualmente guardado).
new
El nuevo valor a actualizar.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo de apc_cas()
<?php
apc_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apc_cas('foobar', 1, 2) ? 'ok' : 'fallo'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apc_cas('foobar', 2, 1) ? 'ok' : 'fallo'), PHP_EOL;
echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;
echo '$f__bar == 1 ? 2 : 1 = ', (apc_cas('f__bar', 1, 2) ? 'ok' : 'fallo'), PHP_EOL;
apc_store('perfección', 'xyz');
echo '$perfección == 2 ? 1 : 2 = ', (apc_cas('perfección', 2, 1) ? 'ok' : 'fallo épico'), PHP_EOL;
echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;
?>
El resultado del ejemplo sería algo similar a:
$foobar = 2 $foobar == 1 ? 2 : 1 = fallo $foobar == 2 ? 1 : 2 = ok $foobar = 1 $f__bar == 1 ? 2 : 1 = fallo $perfección == 2 ? 1 : 2 = fallo épico $foobar = 1
In case anyone is puzzled by the function name, "cas" refers to http://en.wikipedia.org/wiki/Compare-and-swap