Php APC未按预期工作?

Php APC未按预期工作?,php,debugging,caching,apc,Php,Debugging,Caching,Apc,我有以下功能: function Cache($key, $value = null, $ttl = 60) { if (isset($value) === true) { apc_store($key, $value, intval($ttl)); } return apc_fetch($key); } 我正在使用以下代码对其进行测试: Cache('ktime', time(), 3); // Store sleep(1); var_du

我有以下功能:

function Cache($key, $value = null, $ttl = 60)
{
    if (isset($value) === true)
    {
        apc_store($key, $value, intval($ttl));
    }

    return apc_fetch($key);
}
我正在使用以下代码对其进行测试:

Cache('ktime', time(), 3); // Store

sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should Fetch
sleep(5);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
它不应该是这样的吗:

string(21) "1273966771-1273966772"
string(11) "-1273966777"
string(11) "-1273966778"
string(11) "-1273966779"

我不明白,有人能帮我找出这种奇怪的行为吗?

显然,这是APC 3.0.16(2007-12-26)及更高版本中的一个已知问题,不会被修复

ttl工作,但在给定请求期间“t”是一个常量。因此,缓存对象至少在下一个请求之前不会过期。

噢!这就是“在下一个请求上”的意思,我想请求的意思是在下一个
apc\u fetch()
调用上。谢谢你,比尔,现在我可以利用这个“错误”。=)
string(21) "1273966771-1273966772"
string(11) "-1273966777"
string(11) "-1273966778"
string(11) "-1273966779"