2013-05-27 13 views
-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中有任何錯誤。任何想法,爲什麼這可能會發生?

+3

如果不知道'db_lib.php'文件中的定義,我們無法幫助您。 – Femaref

+1

執行期間'db_lib.php''死()'嗎? –

+0

你檢查了error_log嗎? –

回答

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聲明,你可以嘗試適當的建立文件路徑(一個例子目錄稱爲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'); 
相關問題