我遇到了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中存在任何错误。有什么想法可能会发生这种情况吗?
答案 0 :(得分:0)
此文件db_lib.php
可能包含exit()
或die()
命令。如果在运行此操作时发生这种情况,则必须使用包含的函数来终止父文件:
require_once('../php_include/db_lib.php');
有时当关闭error reporting的文件中存在错误(解析错误)时,页面无法呈现(留下空白页面)。如果您的PHP安装允许overwriting the PHP ini file,那么您可以在包含require_once
语句的页面上使用:
error_reporting(E_ALL);
ini_set('display_errors', 1);
由于您正在使用相对require_once
语句,因此可能会尝试正确构建文件路径(例如,在root
文件夹中名为php_include的目录),如果相对文件不是放置在require_once
函数所需的相对位置:
require_once($_SERVER['DOCUMENT_ROOT'].'/php_include/db_lib.php');
此路径当然必须是文档根目录上方文件的位置。如果文件在文档根目录之外,那么您可以使用相对文件夹点(很少但不是闻所未闻)。
require_once($_SERVER['DOCUMENT_ROOT'].'/../php_include/db_lib.php');