仅在运行时需要时包含php文件

时间:2012-02-14 13:16:23

标签: php

我有一些看起来大致像这样的PHP代码

require_once 'cache.php';
require_once 'generator.php';

if (cache_dirty ('foo')) {
    cache_update ('foo', generate_foo ());
}

print cache_read ('foo');

我的问题是generator.php包含了大量的库,除非cache_dirty在运行时实际返回false,否则我不想加载/解析它。

我知道PHP预编译器可以提供帮助但是现在我需要快速修复。这可能吗?

5 个答案:

答案 0 :(得分:6)

require_once 'cache.php';

if (cache_dirty ('foo')) {
    require_once 'generator.php';
    cache_update ('foo', generate_foo ());
}

print cache_read ('foo');

很好地解决你的问题......

答案 1 :(得分:5)

正如PeeHaa在评论中已经说过,Autoloading通常是理想的方式(尽管它需要重组您的应用。)

然而,在你展示的情况下,我不确定是什么阻止你做

require_once 'cache.php';


if (cache_dirty ('foo')) {
     require_once 'generator.php';
     cache_update ('foo', generate_foo ());

}

答案 2 :(得分:2)

您应该编写一个PHP __autoload函数,以便在找到generator.php电话时动态要求generate_foo

答案 3 :(得分:1)

只需在generator.php块中添加/ require if即可。此外,在函数调用中,函数名和(之间不应有空格。

答案 4 :(得分:1)

如果您的代码是OO(面向对象),那么您应该使用PHP的__autoload()功能。

否则,只需使用条件require_once() s。