Php 一经设置,变量值始终保持不变

Php 一经设置,变量值始终保持不变,php,xml,loops,Php,Xml,Loops,我正在一个目录中循环,试图找到有错误的XML文件 $baddies = array(); foreach (glob("fonts/*.svg") as $filename) { libxml_use_internal_errors(true); $str = file_get_contents($filename); $sxe = simplexml_load_string($str); $errors = libxml_get_errors();

我正在一个目录中循环,试图找到有错误的XML文件

$baddies = array();
foreach (glob("fonts/*.svg") as $filename) {

    libxml_use_internal_errors(true);

    $str = file_get_contents($filename);

    $sxe = simplexml_load_string($str);

    $errors = libxml_get_errors();

    $num_of_errors = 0;
    $num_of_errors = sizeof($errors);

    if ($num_of_errors > 0){

        array_unshift($baddies, $filename);

    }

 }

然而,似乎一旦错误被放入这个对象中,它们就会在循环的后续迭代中持续存在,并且没有错误的文件仍然测试为阳性<代码>$num\u错误对于好文件来说仍然很高。我将它重置为零,甚至在每次循环后都尝试取消设置它。我假设
libxml\u get\u errors
在设置后继续保留一个值。如何重置它?

我认为您应该使用
libxml\u clear\u errors
函数。根据文档说明,该函数将错误存储在缓冲区中。

您是否尝试过
libxml\u clear\u errors()
?不,我不知道它存在。这很有效。太好了,谢谢你。