1、include和require區別
當要包含的文件不存在時,include產生一個警告(Warning),該語句后面的程序會繼續執行;而 require則導致一個致命錯誤(Fatal error),程序就此終止。
2、路徑問題(適用於include和require)
+c.php +folder1 +----a.php +----folder2 +--------b.php a.php include 'folder2/b.php'; b.php include 'c.php';
執行a.php過程
- 包含"b.php",並執行"b.php"
- 在folder1(當前工作目錄,"a.php"所在目錄下)下查找"c.php",查找不到則執行下一步
- 在folder2(當前文件目錄,"b.php"所在目錄下)下查找"c.php"。
無論是"a.php",還是"b.php",若include路徑中含有"../",則都在當前工作目錄(folder1,"a.php"所在目錄)的上級目錄中查找
3、變量作用域
- 一個文件被包含時,所包含的代碼繼承了“include”所在行的變量范圍,該行處可用的任何變量在被包含的文件中都可用。主要針對於函數中的include。
- 所有在包含文件中定義的函數和類都具有全局作用域,和變量不同。普通變量的變量作用於繼承了“include”所在行的變量范圍,例如函數中的include。
4、include_path
set_include_path( get_include_path() . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models' );
默認的include_path=".;C:\xampp\php\PEAR",使用set_include_path設置后,(不論文件的包含層級怎樣)后續的所有程序都會使用該值,該函數可多次調用。