程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php include()函數測試分析

php include()函數測試分析

編輯:關於PHP編程

include_path 下尋找,然後是當前運行腳本所在目錄相對的 include_path 下尋找。例如 include_path 是 . ,當前工作目錄是 /www/ ,腳本中要 include 一個 include/a.php教程  並且在該文件中有一句 include "b.php" ,則尋找 b.php  的順序先是 /www/ ,然後是 /www/include/ 。如果文件名以 ./  或者 ../  開始,則只在當前工作目錄相對的 include_path 下尋找。

所以如下所示的文件結構

----a.php

----include/b.php

----include/c.php

 其中a.php

<?php

include 'include/b.php';

?>

-----------------------

b.php

<?php

include 'c.php';

include 'include/c.php';

?>

--------------------------

c.php

<?php

echo 'c.php';

?>

--------------------------

都能正確運行,說明b.php中兩種不同包含路徑都是可行的,根據include尋找包含文件的方式都能找到c.php。

但是最好的方式還是使用絕對路徑,如果使用了絕對路徑,php內核就直接通過路徑去載入文件而不用去include path逐個搜索文件,增加了代碼執行效率

<?php

define('root_path',dirname(__file__));

include root_path.'/c.php';

?>


結論:

顯然include 後面路徑的格式和php的include path 對程序性能都是存在影響的,include 性能從慢到快的排序是

include 'a.php' < include './a.php' < include '/fullpath/a.php

在代碼中,使用絕對路徑include文件是最好的選擇,因為這樣php內核就直接通過路徑去載入文件而不用去include path逐個搜索文件。

所以我們最好在項目的公用文件中定義一個項目根目錄絕對路徑的常量,然後所有的include的路徑前都帶上這個常量,這樣項目中所有的include使用的都是絕對路徑,既提高程序性能,也減少了相對路徑帶來的煩惱。

參考代碼(來自emlog):

define('emlog_root', dirname(__file__));

include emlog_root . '/config.php';

如果你的項目中已經大量使用include 'test.php'  這樣格式的相對路徑且不好大量修改,那麼請盡量減少php include path中的路徑以提高一定的include性能。因為include path中的路徑越少,php搜索文件的時間也越少。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved