2012-02-04 43 views
2

我不能完全弄清楚這句話的含義:PHP通過set_include_path聲明

set_include_path('.' 
. PATH_SEPARATOR . '../library/' 
. PATH_SEPARATOR . '../application' 
. PATH_SEPARATOR . get_include_path()); 

快速擊穿,將不勝感激。

+0

@職場英語對話,我沒有要,該PATH_SEPARATOR可能是設置爲';'。 – Oldskool 2012-02-04 12:19:40

回答

3

它將兩條路徑添加到include_path,以便如果您 包含文件「../library/filename.php」。 您可以通過

include('filename.php'); 

,而不是

include('../library/filename.php'); 

做,我想這是一些框架的一部分

它基本上添加文件夾到PHP包括路徑

1

的首先要注意的是常量PATH_SEPARATOR是一個預定義常量,它允許跨平臺路徑分隔符(它在unix-li上解析爲':' ke系統和Windows上的';')。

下面的代碼也將達到同樣的結果,但有一點更容易閱讀:

<?php 
$paths = array('.', '../library/', '../application', get_include_path()); 
set_include_path(join(PATH_SEPARATOR, $paths)); 

還是有點冗長,但容易添加到:

<?php 

$paths[] = '.'; 
$paths[] = '../library/'; 
$paths[] = '../application'; 
$paths[] = get_include_path(); 

set_include_path(join(PATH_SEPARATOR, $paths)); 
0

是什麼php的set_include_path函數呢?

它設置了PHP引擎查找文件的可能位置。

例如:

我把這個叫做cmp.php一個PHP文件/home1/machines/public_html

<?php 
    print "1<br>"; 
    require("hello.php"); 
    print "<br>2<br>"; 

    set_include_path("/home1/machines/public_html/php"); 

    print "<br>3<br>"; 
    require("hello.php"); 
    print "<br>4<br>"; 
?> 

下使/home1/machines/public_html下一個新的文件hello.php,把這個在那裏:

<?php 
print "hello from public_html"; 
?> 

創建第二個新文件,名爲hello.php/home1/machines/public_html/php下,把這個在那裏:

<?php 
print "hello from public_html/php"; 
?> 

運行cmp.php,你應該得到這樣的:

enter image description here