或者它是否创建了存储内容的副本并将其添加到脚本的本地内存中?
我有一个案例,我决定是否使用APCu缓存一个很少更改的变量(每月一次),或者只是在运行时重新声明该变量(使用OpCache优化),并上传每当我更改它时都会有一个新的PHP脚本。
答案 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)