php仅在存在时包含文件

php仅在存在时包含文件,php,caching,include,warnings,Php,Caching,Include,Warnings,我正在用php测试一些缓存代码: if (is_readable($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); […] if(可读($cachefile)&&(time()-$cachetime)

我正在用php测试一些缓存代码:

   if (is_readable($cachefile) && (time() - $cachetime
     < filemtime($cachefile))) 
  {
            include($cachefile);
   […]
if(可读($cachefile)&&(time()-$cachetime)
它应该做什么: 仅当$cachefile已存在时才运行include。如果不存在,则应继续运行,而不尝试包含$cachefile。

它的作用: 它每次尝试加载$cachefile,因此在它不存在时创建一个php警告。

我不知道如何修复它,因为我尝试了通常可以防止include超标的所有方法。有人能帮忙吗?
谢谢!

如果(存在文件('file.php')) 包括'file.php';

像这样试试

if (isset($cachefile) && ((time() - $cachetime) < filemtime($cachefile))) 
{
    include($cachefile);
}
if(isset($cachefile)&&((time()-$cachetime)
您可以使用
isset
file\u exists
函数,这里是文档=>


注意:
Wrap time()-$cachetime
in(),还要确保
$cachefile
的url是正确的

使用
isset
函数而不是可读的:
可读的
-告诉文件是否存在并且可读-听起来你在其他地方做了一些错误。正如hakre已经写的,肯定还有其他地方出错-你检查了错误的行号了吗?是吗是否确实是发生错误包含的文件和行?
是可读的()
很好。您只是建议使用一个功能较少的函数(但可能同样有效,但可能会产生相同的效果)。