PHP包括实践

时间:2011-08-26 01:10:41

标签: php

有没有人知道PHP何时执行include和include_once调用?

我很想知道因为我来自Flash和桌面开发背景,你必须在每节课的开头导入你的课程。

但是现在我开始构建更复杂的PHP代码,看起来当我真正需要它们来节省加载时间时才更好。例如,查看以下伪代码:

if (I_need_to_check_login)
 { 
   include_once "Class.class.php";
   $C = new Class();
 }

如果我这样做,每次运行代码时或者只有当我执行include_once时才会包含文件Class.class.php。

我是一个类怪人,通常为我的应用程序使用的任何功能构建一个类,所以我经常有很多类文件。

4 个答案:

答案 0 :(得分:5)

include,include_once是标准的PHP指令。这意味着当解释器在程序流程中找到一个时,解释器执行每个include,include_once。如果控制结构避免执行具有包含指令的代码段,则不会执行该指令。

在您的示例中,当且仅当I_need_to_check_login为真时,才会执行include_once。

答案 1 :(得分:4)

只有在口译员到达那里时才会执行包含。例如:

$variable = false;
if ($variable) {
    include 'a.php';
} else {
    include 'b.php';
}

在这种情况下,只包括b.php。

有关其行为的更多信息:PHP Manual - include

答案 2 :(得分:4)

是的,每次必须致电:$C = new Class();,您必须要求或包含该文件。现在你可以做的而不是include_once:

if (!class_exists('MyClass')) {
    include("Class.class.php");
}

这意味着如果您之前已经包含它,那么您可能没有再次包含它。这也将提高性能,因为include的执行速度比include_once快。

答案 3 :(得分:2)

如果您执行include_once命令,文件实际上只包含

因此,如果I_need_to_check_login评估为false,则根本不会包含文件

您可以轻松地将echo "I've been included"; exit;添加到该文件的第一行。