-1

我在 PHP 中包含一个文件时遇到了一个奇怪的问题。这个文件有一个类定义,但是当我尝试将它包含在脚本中时,脚本会在包含点终止。这是一个例子:

<?php
    require_once('../php_include/twitter_config.php');
    echo 'line '.__LINE__.' executed</br />';
    require_once('../php_include/db_config.php');
    echo 'line '.__LINE__.' executed</br />';
    require_once('../php_include/db_lib.php');
    echo 'line '.__LINE__.' executed</br />';
?>

当我运行这个脚本时,我总是得到:

line 3 executed
line 5 executed

如您所见,我没有创建 db_lib.php 中定义的类的实例。我正在使用的IDE(netbeans)似乎不认为db_lib.php中有任何错误。任何想法为什么会发生这种情况?

4

1 回答 1

0

该文件db_lib.php可能包含一个exit()ordie()命令。如果在运行时发生这种情况,则需要包含的函数正在杀死父文件:

require_once('../php_include/db_lib.php');

此外,有时当文件中存在错误(解析错误)并关闭错误报告时,页面无法呈现(留下空白页面)。如果您安装的 PHP 允许覆盖 PHP ini 文件,那么您可以在包含require_once语句的页面上使用:

error_reporting(E_ALL);
ini_set('display_errors', 1);

由于您使用的是相对require_once语句,因此您可以尝试适当地构建文件路径(文件夹中名为 php_include 的目录的示例root),如果相对文件未放置在require_once函数期望的相对位置:

require_once($_SERVER['DOCUMENT_ROOT'].'/php_include/db_lib.php');

该路径当然必须是文档根目录上方文件的位置。如果文件在文档根目录之外,那么您可以使用相对文件夹点(罕见但并非闻所未闻)。

require_once($_SERVER['DOCUMENT_ROOT'].'/../php_include/db_lib.php');
于 2013-05-28T00:52:10.317 回答