我读过include和require之间的区别之一就是 如果include语句是include,则include仅包括包含的文件 遇到,要求将文件包含到托管要求的文件中 即使执行流程未达到需求代码,也要声明。
这怎么会有任何影响。毕竟,如果我有一个文件说:
<?php
echo __LINE__;
?>
输出将始终为3,而不是在内部打印线 包含此类包含文件的文件内的位置。
答案 0 :(得分:7)
据我所知,这根本不是真的。如果代码中未达到require
行,则肯定不会包含该文件。
require
与include
相同,但失败后也会如此 产生致命的 E_COMPILE_ERROR 级错误。
(强调“除了”我添加)
答案 1 :(得分:2)
据我所知,这不是需要工作的方式。唯一的实际区别是,如果无法包含该文件,require将导致您的脚本终止,并且include将仅发出警告并继续执行。
一个非常重要的习惯取决于你陈述的行为不是真的:有条件的必需文件。
if(is_secure_page()) {
require "security.php";
}
答案 2 :(得分:2)
require
和include
都将其文件包含在执行流程中的文件中。
一个简单的测试用例是:
if (false) {
require_once("Nonexistent.php");
}
echo "I'm doing SCIENCE and I'm still alive.\n";
答案 3 :(得分:1)
require
,甚至更好,require_once
应该是专门使用的,例如你需要的任何图书馆。 include
及其兄弟include_once
只应在包含文件不需要执行脚本时使用,例如当您加载侧边栏或某些切线内容时。
两个语句之间唯一真正的差异是找不到文件,require
会抛出致命错误,而include
只会发出警告,继续快乐地走开。
我相信require
和include
都以完全相同的方式加载和解析。如果require
会在给定的上下文中加载文件,那么include
也会加载。
答案 4 :(得分:1)
我个人总是使用require_once
,我发现在大多数情况下它都是你需要的(要么你得到一次页面,要么你停止脚本)。如果你想“尝试”包含东西,include
会抛出你需要隐藏的警告。但这只是糟糕的编程习惯,一个简单的if (file_exists($file)) require_once $file;
就可以完成这个技巧并完全胜过include
。
所以在我看来,require
到目前为止胜出。
PS:被一秒钟击败!
答案 5 :(得分:1)
假设您正在运行任务关键型应用程序,每秒将损失1美元。有些库仅在某些情况下使用,不会影响您的业务流程。您应该对这些可选库使用 include_once 。因为如果文件不存在, require 将阻止您的应用程序运行并发生致命错误。