每次运行此代码时,我都会看到5个输出:
<?php
$v = 5;
apc_store('vwxyz',$v,3);
$before = apc_fetch('vwxyz');
sleep(5);
$after = apc_fetch('vwxyz'); //should be false
echo $before;
echo "<br>";
echo $after;
$later = apc_fetch('vwxyz'); //OK this should definitely be false
echo "<br>";
echo $later;
是否应该从缓存中清除缓存的条目并将false返回给apc_fetch()?对于APC,user_ttl设置为2。我还在试图找出user_ttl的作用(文档很神秘)。
答案 0 :(得分:5)
来自manual:
生存时间;将 var 存储在 ttl 秒的缓存中。在 ttl 之后 已经过了,存储的变量将从缓存中清除(on 下一个请求)。如果未提供 ttl (或 ttl 为0), 值将一直持续到手动从缓存中删除,或者 否则无法存在于缓存中(清除,重启等)。
因此它表示在下一个请求上的 TTL 之后,项目将从缓存中删除。因此,在您下次请求之前,该项目不会从缓存中删除,这就是您继续获得5的原因。