只加载一次xml


Load xml only once

我只需要加载一次xml文件。。这是一个功能

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

这应该有效吗?如何测试文件是否只加载一次?

此函数在失败时返回false,因此您可以在调用该函数后的某个时刻检查$xml === false是否存在。

为什么你认为它会加载不止一次?如果您认为它可能被多次加载的原因与代码的其余部分有关,则应该提取将文件加载到其自己的方法/函数中的调用。

此外,最好将对simplexml_load_file的调用封装在if语句中,以确保文件存在:

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

如果出现错误,可以调用libxml_get_errors来确定问题,如下所述:libxml_get_errors docs