我在使用require
或require_once
時遇到了一些問題,因爲代碼在調用後暫停執行,我正在努力尋找究竟是什麼導致了問題。PHP - 調試需要
我檢查了文件存在,可以閱讀(通過file_exists
和is_readable
),但這兩個似乎是真實的,所以我有點難住。
require_once('file1.php');
print('a');
$file = 'file2.php';
if (!file_exists($file)) { die('file does not exist'); }
if (!is_readable($file)) { die('cannot read file'); }
require_once($file);
print('b');
上面的代碼只輸出'a',之後什麼也沒有。
服務器上的另一個文件以相同的方式使用兩個有問題的文件都沒有問題。
還有什麼我可以檢查?
任何幫助,將不勝感激。
編輯:
設置error_reporting(E_ALL)
不改變輸出。
將文件路徑更改爲同一目錄中的空白文件會將輸出更改爲'ab',表明require已經工作並且暗示它們是file2.php
的問題,但是服務器上的另一個文件成功使用這些文件完全相同的方式。
爲file2.php運行php -l
不會返回錯誤。
評論第一個要求沒有區別。
EDIT2:
問題是與以class_exists
打個電話,在5.0版本中行爲的變化做自動加載到去做。有問題的代碼是在升級到5.0之前編寫的。
感謝您的建議。我已經更新了當我同時執行上述操作時發生的情況。更改錯誤報告似乎沒有什麼區別,將路徑更改爲空文件工作正常。但服務器上的另一個文件成功使用此文件。 –
也許使用該文件的其他人設置了file2.php使用的某些var,而不是 – dynamic
似乎並非如此,它使用與文件頂部完全相同的代碼。 –