1. 程式人生 > >php的文件引用

php的文件引用

路徑 class 定義 作用 當前 style font line st3

最近研究公司代碼時發現了set_include_path(dirname(__FILE__));這樣一行代碼,在網上查了些資料,才把這個方法的作用弄清楚。

首先,dirname(__FILE__)這個方法返回當前代碼所在文件的路徑。

而set_include_path這個函數呢,就相當於windows的環境變量。windows可以通過環境變量的路徑,來從指定的路徑下尋找需要的文件。

當我們的項目需要引入多個類文件、函數文件時,特別是當所引用的文件路徑比較深的時候,我們的代碼就會變成下面這樣:

1 <?php
2 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test1.php");
3 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test2.php"); 4 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test3.php"); 5 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test4.php"); 6 include("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/test5.php"); 7 ?>

是不是感覺寫出來很多冗余的代碼了。

如果我們設置了set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/

");那麽我們的代碼前面的路徑就可以省略了。

1 <?php
2 set_include_path("xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/");
3 include("test1.php");
4 include("test2.php");
5 include("test3.php");
6 require("test4.php");
7 require("test5.php");
8 ?>

set_include_path函數還可以設置多個路徑變量,在linux下用:分隔,在windows下用;分隔。比如:

 1 <?php
 2 define
(‘A‘,‘xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/‘); 3 define(‘B‘,‘yyy/yyy/yyy/yyy/yyy/yyy/yyy/yyy/‘); 4 define(‘C‘,‘zzz/zzz/zzz/zzz/zzz/zzz/zzz/zzz/‘); 5 6 set_include_path(A.PATH_SEPARATOR.B.PATH_SEPARATOR.C); 7 8 include("test1.php"); 9 include("test2.php"); 10 include("test3.php"); 11 require("test4.php"); 12 require("test5.php"); 13 14 ?>

最後,還有兩個php預定義變量

PATH_SEPARATOR:路徑分隔符,include多個路徑使用,在win下,當你要include多個路徑的話,你要用”;”隔開,但在linux下就使用”:”隔開的。

還有DIRECTORY_SEPARATOR:目錄分隔符,linux上就是’/’ windows上是’\’。

php的文件引用