2014-09-02 100 views
2

我需要加載XML文件只一次.. 這是一個功能加載XML只有一次

static $xml = 0; 
    if($xml == 0){ 
     $xml = simplexml_load_file('themes/colors.xml'); 
    } 

這應該工作?我如何測試文件是否只加載一次?

+0

記錄,打印,在文件加載時以某種方式給出反饋。因此,在加載它的行('simplexml_load_file')下,放置一個echo或打開一個文件以附加日誌消息。對於默認值,我會使用'null'。取決於'simplexml_load_file'可能返回的內容。你在做什麼是對的,'static'應該在這裏工作。 – bzeaman 2014-09-02 13:51:32

+0

您可以將測試代碼放在非常大的循環中,並將執行時間與對該代碼的單個調用進行比較。 – 2014-09-02 14:15:49

+0

每次打算調用'simplexml_load_file'時都打印一些東西? – amphetamachine 2014-09-02 14:31:05

回答

0

該函數在失敗時返回false,因此您可以在調用該函數後的某個時刻檢查$xml === false

爲什麼你認爲它會加載不止一次?如果您認爲它可能不止一次加載的原因與您的其他代碼有關,則應該提取該調用以將該文件加載到其自己的方法/函數中。

而且,這將是一個好主意來包裝呼叫,確保該文件存在if語句來使用simplexml_load_file:

$filename = 'themes/colors.xml'; 
if(file_exists($filename)){ 
    $xml = simplexml_load_file($filename); 
} 

如果有錯誤,你可以調用libxml_get_errors,以確定問題,如下所述:libxml_get_errors docs