我一直在用 PHP 对 APC 缓存进行一些研究,发现条件包含不起作用。喜欢:
if($a) {
include('a.php');
} else {
include('b.php');
}
我的问题是:我可以通过变量包含来解决这个问题吗?如:
if($a) {
$file = 'a.php';
} else {
$file = 'b.php';
}
include($file);
后面的代码会被 APC 成功缓存吗?
APC 仍会缓存文件,只是在稍后解析您的应用程序时。如果可能,建议始终包含两者。
如果您与条件包含相关联,您应该考虑这可能根本不是什么大问题。:)
APC 包包含一个文件 apc.php(我认为它最终位于 /usr/share/doc/ 下的某个位置,所以请复制一份),它将显示正在缓存的文件(您需要对其进行编辑和设置)查看完整路径的密码)-您是否确定它不起作用,或者您是否要摆脱似乎围绕 APC 的中国耳语?
现在看到了这个帖子。
认为它可能对某人有用。
使用 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