-1

我最近发现了 set_include_path() 并发现返回的路径是我的包含目录的路径。

PHP 是否会自动查找包含目录并将 include_path 更新为此?

我还注意到,当在类本身之外设置时,我使用 set_include_path 设置的少数路径在类方法中不可用。

为什么是这样?

$include_root = $_SERVER['DOCUMENT_ROOT'] . '/path/to/includes/';
$include_paths = get_include_path() . PATH_SEPARATOR .
                 $include_root . PATH_SEPARATOR .
                 $include_root . 'classes/' . PATH_SEPARATOR;

set_include_path( $include_paths );

提前感谢您的所有建议!

4

1 回答 1

3

这(包含目录的任何“自动”查找)将在 php.ini 文件中设置。制作一个名为 test.php 的测试页面,其中包含:

<?php phpinfo(); ?>

将浏览器指向 test.php 并查找此变量:

include_path    .:/usr/share/php:/usr/share/pear

您还可以找到正在使用的 php.ini 文件:

Loaded Configuration File   /etc/php5/apache2/php.ini

我没有关于类方法问题的答案。

如果您是从命令行运行而不是通过浏览器运行,则可以使用以下命令检查 ini 文件:

php -r "phpinfo();" | less
于 2011-09-20T04:19:42.680 回答