包含/内部条件的PHP行为

Jen*_*and 17 php performance conditional include

如果我将一个includerequire语句放在一个求值的条件中false,那么PHP解释器是否会完全跳过包含文件,还是会加载它以防万一?

一个例子是:

if ($some_user_var) {
    require 'this.php';
} else {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

我读到了某个地方,require无论条件如何,翻译都将包含在内,但include不会.如果是这种情况,只需切换requireinclude可能意味着由于I/O减少和解析开销而导致的免费加速.

如果我正在运行像eAccelerator这样的预处理器,它可能会有所不同,但我们假设我没有.

Spu*_*ley 26

只有条件为真时才会包含它.我不知道你在哪里读,但他们错了.

include和之间的唯一区别require是,include如果失败则会发出警告,但require会引发致命错误.

要确认这一点,请参阅PHP手册页require.

(ps - 如果你正在做有条件的包括,取决于什么是reaon,你可以考虑使用include_once()require_once()代替)