set_include_path和get_include_path用法詳解

WBOY
發布: 2016-07-28 08:25:59
原創
980 人瀏覽過

文章轉載自: http://blog.sina.com.cn/s/blog_4ce89f200100twbl.html

首先set_include_path這個函數呢,是在腳本裡動態地對PHP .ini中include_path進行修改的。
而這個include_path呢,它可以針對下面的include和require的路徑範圍進行限定,或者說是預先定義一下。
 

好像:
      我們需要寫這個值,如果我們需要寫這個值,如果我們需要寫這個值,如果我們需要寫這個值,如果我們需要寫這個值一些完整的路徑:
            include("123/test1.php");  
   include("123/test2.php");      
include("123/test3.php");       
require("123/test4.php");     require("123/test5.php"); 
    🎜>     來引入許多外部文件,但是如果我們設定了set_include_path("123/"),我們就可以用下面程式​​碼代替。
        
   set_include_path("123/");    
include("test1.php");      
  include("test2.php");      
   include("test3.php");         
 p. php");        test 
  test      ?>
  ?> 🎜>因為呢,當執行include或require操作時,就會去include_path指定的路徑去查找要引入的文件,雖然我現在不知道這樣會不會在性能上有所優化,但是可以肯定的是,可以節省一部分代碼。呵呵~    那麼剛開始的時候,我以為它加不加都是一樣的沒什麼不同,是因為我只包含了一個本資料夾下的檔案。
   後來,終於發現其中的玄機了!可恨的是,網路上居然沒有一篇像我這樣的文章....都是同一篇文章轉來轉去的。    那麼這個函數它不只可以定義一個資料夾,我們可以定義很多資料夾。如下圖所示,我要寫一個初始化函數:
      function initi🎜> 
 function initi🎜>  >{   
set_include_path(get_include_path().PATH_SEPARATOR ." 🎜>set_include_path(get_include_path().PATH_SEPARATOR ."app/");   set_include_(m. >
   set_include_path(get_include_path().PATH_SEPARATOR ."lib/");
  
 
set_include_path(get_include.    set_include_path(get_include_path().PATH_SEPARATOR."cache/");這樣它的路徑就成了:
 
  .;C:php5pear;core/;app/;admin/;lib/;include/ ;data/;cache/ 
  哎,我們發現前面還有個.;C:php5pear;這到底是怎麼回事呢,其實我們如果什麼也不寫直接先輸出一下include_path的預設值,就會發現它就是.;C:php5pear;它可以允許隨便去一個引入檔。
   如果再載入了許多資料夾的話,我們直接寫檔案名稱就可以了!
  但是正如我最開始那個問題一樣,為什麼我們公司的代碼和人家的就不一樣呢,原來,如果我就寫一個
         set_include 
 set_include; 然後去引入其他資料夾的文件,就會報錯,說在我指定的這個資料夾內找不到。
     首先,我們先用另一個方法輸出一下:  > 
     
 set_include_path(dirname(__FILE__));       $include_value = ini_get('include_path'); 
    echo $include_value;      
?>  ?> 🎜> 結果是:D:AppServwww   
  則沒有報錯     
include("test4.php"); include("test4.php"); include("test4.php");  
 但是我如果去找    
    .cl; >  
   就會報錯: Warning: include() [
function.include]:Failed opening 'test1.php' for inclusion(include_path='D:AppServwww') inD:AppServwwwtest.phpon line6  而且我們也發現
.;C:php5pear;已經被替換掉了。所以我們在使用的時候,如果不是只在一個資料夾下引入文件,我們就需要在前面加上get_include_path().PATH_SEPARATOR.    🎜>解釋一下:
       )是取得目前include_path的預設值     
  ATOR是個常數,是include的路徑分界符合,在window上是;在unix和Linux上是:   
 最後,我還要說一下,其實我們也可以透過另一個方法:也就是最原始的:    
       🎜>ini_set('include_path'


🎜 >);    另外,需要注意的兩點是:另外,需要注意的兩點是:       如果在指定的    
     要求包含的檔案在這幾個目錄都有相同名稱的檔案存在時,php選擇使用設定include_path 時排位居前的目錄下的檔案。 以上就介紹了 set_include_path和get_include_path用法詳解,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!