对比
方法  | 文件导入时机  | 被导入文件出错处理机制 被导入文件不存在或运行报错  | 是否会重复包含  | 
include  | 文件在运行是导入,所以不一定会被导入  | 抛出警告,继续执行  | 多次调用,会多次导入  | 
include_once  | 多次调用,只导入一次  | ||
require  | 文件在解析的时候导入,所以一定被导入  | 抛出错误,停之执行  | 多次调用,会多次导入  | 
require_once  | 多次调用,只导入一次  | 
导入文件时机
<?php
if (false) {
  // 只有代码运行到此处的时候才会导入 demo.php 文件
  include('demo.php');
}
if (false) {
  // 即使条件是fase,解析程序首先在解析的时候就会执行此处的导入操作
  require('demo.php');
}所以 require 语句一般放在php文件最顶部,用于加载必要的代码。
而 include 语句一般是放在流程控制代码段中执行,有条件的加载其他文件代码。
带有 _once 后缀的差异
include 和 include_once 的用法一致,唯一区别是先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。但是在使用 include() 时,可以忽略"()",如直接写成 include 'demo.php';
require 和 require_once 的差异同上。
有无返回值
include 有返回值,require 没有返回值
$res = include('demo.php');
if (!empty($res)) {
  echo '文件导入成功';
} else {
  echo '文件导入失败';
}
    
