通過一些語句或函數可以在當前腳本中引入另一個腳本文件,被引入的腳本文件擁有當前腳本所在行的作用域范圍,且被引入的腳本文件中的函數和類都具有全局作用域。
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
上面兩個的作用是,可避免重復引入導致被引入的文件中的函數、變量等重復定義。