2
我需要加載XML文件只一次.. 這是一個功能加載XML只有一次
static $xml = 0;
if($xml == 0){
$xml = simplexml_load_file('themes/colors.xml');
}
這應該工作?我如何測試文件是否只加載一次?
我需要加載XML文件只一次.. 這是一個功能加載XML只有一次
static $xml = 0;
if($xml == 0){
$xml = simplexml_load_file('themes/colors.xml');
}
這應該工作?我如何測試文件是否只加載一次?
該函數在失敗時返回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
記錄,打印,在文件加載時以某種方式給出反饋。因此,在加載它的行('simplexml_load_file')下,放置一個echo或打開一個文件以附加日誌消息。對於默認值,我會使用'null'。取決於'simplexml_load_file'可能返回的內容。你在做什麼是對的,'static'應該在這裏工作。 – bzeaman 2014-09-02 13:51:32
您可以將測試代碼放在非常大的循環中,並將執行時間與對該代碼的單個調用進行比較。 – 2014-09-02 14:15:49
每次打算調用'simplexml_load_file'時都打印一些東西? – amphetamachine 2014-09-02 14:31:05