【问题标题】:PHP set_include_path statementPHP set_include_path 语句
【发布时间】:2012-02-04 12:13:20
【问题描述】:

我不太明白这句话的意思:

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

我们将不胜感激。

【问题讨论】:

  • @yes123,我不必,PATH_SEPARATOR 可能设置为;

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


【解决方案1】:

它将两个路径添加到 include_path 中,这样如果你 包括一个文件“../library/filename.php”。 你可以这样做

include('filename.php');

而不是

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

我想这是某个框架的一部分

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

【讨论】:

    【解决方案2】:

    首先要注意的是常量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));
    

    【讨论】:

      【解决方案3】:

      php的set_include_path函数有什么作用?

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

      例如:

      我把它放在/home1/machines/public_html下一个名为cmp.php的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>";
      ?>
      

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

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

      /home1/machines/public_html/php 下创建第二个名为hello.php 的新文件,将其放入:

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

      运行cmp.php,你应该得到这个:

      【讨论】:

        猜你喜欢
        • 2011-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-09
        • 2012-12-27
        相关资源
        最近更新 更多