2012-02-04 71 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