我一直在用PHP进行APC缓存研究,发现条件包括不起作用。像:
if($a) {
include('a.php');
} else {
include('b.php');
}
我的问题是:我可以通过变量包含来解决这个问题吗?如:
if($a) {
$file = 'a.php';
} else {
$file = 'b.php';
}
include($file);
后面的代码会成功缓存APC吗?
答案 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