PHP set_include_path语句

时间:2012-02-04 12:13:21

标签: php include-path set-include-path

我无法弄清楚这句话的含义:

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

快速细分将不胜感激。

3 个答案:

答案 0 :(得分:3)

它添加了include_path的两个路径,以便你可以 包含一个文件“../library/filename.php”。 你可以通过

来做到这一点
include('filename.php');

而不是

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

我认为这是某个框架的一部分

它基本上将文件夹添加到php include路径

答案 1 :(得分:1)

这里要注意的第一件事是常量PATH_SEPARATOR是一个预定义的常量,它允许跨平台路径分隔符(它在类似unix的系统上解析为':',在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));

答案 2 :(得分:0)

php的set_include_path函数有什么作用?

它为php引擎设置了查找文件的可能位置。

例如:

我把它放在cmp.php

下的一个名为/home1/machines/public_html的php文件中
<?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>";
?>

hello.php下创建一个新文件/home1/machines/public_html,将其放在那里:

<?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