带变量的APC缓存包括

时间:2009-07-08 16:53:35

标签: php apc opcode

我一直在用PHP进行APC缓存研究,发现条件包括不起作用。像:

if($a) {
    include('a.php');
} else {
    include('b.php');
}

我的问题是:我可以通过变量包含来解决这个问题吗?如:

if($a) {
    $file = 'a.php';
} else {
    $file = 'b.php';
}
include($file);

后面的代码会成功缓存APC吗?

3 个答案:

答案 0 :(得分:2)

APC仍然会在解析你的应用程序的稍后阶段缓存该文件。如果可能,建议始终包括两者。

如果你与条件包含有关,你应该考虑这可能根本不是什么大问题。 :)

答案 1 :(得分:0)

APC包中包含一个文件apc.php(它最终位于/ usr / share / doc /下的某处,我认为,所以需要一份副本),它会显示正在缓存的文件(需要编辑)它并设置密码以查看完整路径) - 你知道它确定无法正常工作吗,或者你是否正在寻找围绕着APC的中文耳语?

答案 2 :(得分:0)

现在看到这篇文章 认为它可能对某人有用。

使用APC时,如果使用apc.stat=0,则相对路径将无效include, require等。
您需要使用绝对路径。

例如:
考虑名为myfolder的文件夹中的脚本。

相对路径会导致错误:

<?php include 'script2.php'; ?>

而是使用绝对路径:

<?php include $_SERVER['DOCUMENT_ROOT'] . '/myfolder/script2.php'; ?>

请参阅以下链接了解更多信息:
https://bugs.php.net/bug.php?id=59493
http://www.phpbb.com/community/viewtopic.php?f=46&t=2112260&p=12919262#p12919262