PHP APCu:apc_fetch()是否传递引用?

时间:2014-12-10 03:22:05

标签: php performance caching

或者它是否创建了存储内容的副本并将其添加到脚本的本地内存中?

我有一个案例,我决定是否使用APCu缓存一个很少更改的变量(每月一次),或者只是在运行时重新声明该变量(使用OpCache优化),并上传每当我更改它时都会有一个新的PHP脚本。

1 个答案:

答案 0 :(得分:0)

正如@zerkmes在他的评论中提到的那样,apc_fetch传递引用不应该是预期的行为,因为每个脚本都有一个固定的已分配内存块。

我在http://php.net/manual/en/function.apc-fetch.php的评论部分找到了一个实验(由 aktharmiah在gmail dot com 发布),证实了这一点:

class foo{
    public $bar;    
}

apc_add("foo",  new foo());

$fooGot    =    apc_fetch("foo");
$fooGot->bar = 1234;    

print_r(apc_fetch("foo"));
echo '<br>';
print_r($fooGot);

确实打印:

foo对象([bar] =&gt;)

foo对象([bar] =&gt; 1234)