通过一些语句或函数可以在当前脚本中引入另一个脚本文件,被引入的脚本文件拥有当前脚本所在行的作用域范围,且被引入的脚本文件中的函数和类都具有全局作用域。
include
:出错时发出警告,脚本继续
require
:出错时立即报错,脚本终止
两者功能、参数、返回值都一样,都可以使用语句形式或函数形式调用,参数是一个文件路径,该路径如果是一个文件名,则先去 php.ini
中配置的 include_path
中查找,如果没找到,则去当前脚本所在的目录下寻找,如果还没找到,就GG了,出错处理看上面。
include("child.php");
include "child.php";
require("child.php");
require "child.php";
include
和 require
加不加括号效果都一样,都能成功的引入一个脚本。
// 引入一个返回 123 的文件
$foo = include "child.php";
// 输出 123
echo $foo;
// 引入一个空文件
$bar = require "empty.php";
// 输出 1
echo $bar;
如果引入的文件中没有明确使用 return
返回数据,那么返回值代表的是是否成功引入文件,成功返回 1
,失败返回 FALSE
,并产生错误或警告或终止。
因为 include
和 require
是语言结构,所以一般在使用的时候建议不要使用函数形式。
如果被包含的文件中有定义函数,那么不管该函数的定义是否在 return
之后,主脚本中都可以使用。
include_once
:如同include
require_once
:如同require
上面两个的作用是,可避免重复引入导致被引入的文件中的函数、变量等重复定义。