首頁 後端開發 php教程 set_include_path用法

set_include_path用法

Jul 29, 2016 am 09:10 AM
include nbsp path php test

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

   http://blog.sina.com.cn/s/blog_81561101031010303030

今天在公司研習原始碼時,看到了set_include_path(dirname(__FILE__));這樣一行程式碼,甚為不解。於是我就百度了一下,順便看了一下php.net的手冊,可是還是不太明白它到底有什麼作用。
   偶然見看到一段另外一段程式碼,然後突發靈感,測試了一下,果然不出所料!
現在我總結一下吧:
   首先set_include_path這個函數呢,是在腳本裡動態地對PHP.ini中include_path進行修改的。
而這個include_path呢,它可以針對下面的include和require的路徑範圍進行限定,或者說是預定義一下。
好像:
       如果我們沒有設定這個值,可能我們需要寫一些完整的路徑: clude("123/test1.php");
          include("123/test2.php");
           require("123/test4.php");
          
require( "123/test5.php");
       ?>
來引入很多外部文件,但是如果我們設定了set_include_path("123/"),我們就可以用下面程式​​碼代替。


          set_include_path             include("test2.php");
          include(" test3.php");
          require("test4.php");
         ?>

因為呢,而執行include或require操作時,就會去include_path指定的路徑去查找要引入的文件,雖然我現在不知道這樣會不會在性能上有所優化,但是可以肯定的是,可以節省一部分程式碼。呵呵~
     那麼剛開始的時候,我以為它加不加都是一樣的沒什麼不同,是因為我只包含了一個本文件夾下的文件。
    後來,終於發現其中的玄機了!可恨的是,網路上居然沒有一篇像我這樣的文章....都是同一篇文章轉來轉去的。     那麼這個函數它不只可以定義一個資料夾,我們可以定義很多資料夾。如下圖所示,我要寫一個初始化函數:
     function initialize()
{    set_include_s(get_include_s(get));   set_include_path(get_include_path().PATH_SEPARATOR . "app/");
    set_include_path(get_include_path().PATH_SEPARATOR . "admin/");
      set_include_path(get_include_path().PATH_SEPARATOR . "include/");
    set_include_path(get_include_path().PATH_SEPARATOR."data/");

}
    這樣它的路徑就成了:
    .;C:php5pear;core/;app/;admin/;lib/;include/;data/;cache/
:   php5pear;這到底是怎麼回事呢,其實我們如果什麼也不寫直接先輸出一下include_path的預設值,就會發現它就是.;C:php5pear;它可以允許隨便去一個引入檔。
    如果再載入了許多資料夾的話,我們直接寫檔案名稱就可以了!
   但是正如我最開始那個問題一樣,為什麼我們公司的代碼和人家的就不一樣呢,原來,如果我就寫一個
       資料夾的文件,就會報錯,說在我指定的這個資料夾內找不到。
      首先,我們先用另一個方法輸出一下:
             $include_value = ini_get('include_path');
echo $include_value;
       ?>

結果是:D:AppServwww
       include("test4.php");       但是如果我去找
      include("test1.php");
):oin 
function.include]: Failed opening 'test1 .php' for inclusion (include_path='D:AppServwww') in
D:AppServwwwtest.phpon line6
     而且我們也發現.;C:php5pear;已經被替換掉了。所以我們在使用的時候,如果不是只在一個資料夾下引入文件,我們就需要在前面加上get_include_path().PATH_SEPARATOR _path的默認值
            PATH_SEPARATOR 是常數,是include的路徑分界符合,在window上是;在unix和Linux 原始的:ini_set(
'include_path'

'目錄名           如果在指定的
目錄下找不到所要求包含的文件,而在當前頁面目錄下正好存在這個名稱的文件時,則默認引入當前目錄下的該文件。

以上就介紹了set_include_path用法,包含了require方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

華為Watch GT 5智慧手錶獲得新功能更新 華為Watch GT 5智慧手錶獲得新功能更新 Oct 03, 2024 am 06:25 AM

華為Watch GT 5智慧手錶獲得新功能更新

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

您如何在PHP中解析和處理HTML/XML?

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

php程序在字符串中計數元音

搭載 HyperOS 的新款小米米家石墨烯油汀到貨 搭載 HyperOS 的新款小米米家石墨烯油汀到貨 Oct 02, 2024 pm 09:02 PM

搭載 HyperOS 的新款小米米家石墨烯油汀到貨

2024 年最適合開發人員的 10 個 PHP CMS 平台 2024 年最適合開發人員的 10 個 PHP CMS 平台 Dec 05, 2024 am 10:29 AM

2024 年最適合開發人員的 10 個 PHP CMS 平台

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

我後悔之前不知道的 7 個 PHP 函數

See all articles