有没有人知道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。
我是一个类怪人,通常为我的应用程序使用的任何功能构建一个类,所以我经常有很多类文件。
答案 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;
添加到该文件的第一行。