PHP microtime strange behavior
===

I was looking at execution time of some functions, but i have found that microtime is getting wrong, in one `microtime()` 

 **implementation №1** always first time is always getting more then second `microtime()` executing, when i testing one function and saw that one case is faster then another, but after place replace  (*2nd function to 1st place*), it getting slower anyway, even if it was 3x faster...

    function dotimes($times,$eval,$data=false) {for(;--$times;) eval($eval);}
    

    $start = microtime(true);

    dotimes(100,'$xml = XMLReader::open("cms.htm");while($xml->read()) {if($xml->nodeType == XMLReader::COMMENT) ++$i;}');

    printf(": executed : %f\n",microtime(true)-$start);

    $start = microtime(true);

    dotimes(100,'$xml = XMLReader::open("cms.htm");while($xml->read()) {if($xml->name === "#comment") ++$i;}');

    printf(": executed : %f\n",microtime(true)-$start);

    // 1st case is always slower...

**implementation №2** iv made sometimes before `microtime()` as static data storage, but in that case  the time of execute is always second time is slower then first (*oposite to implementation №1*)

    function get_execution_time()
    {
        static $microtime_start = null;
        
            return $microtime_start === null ? $microtime_start = microtime(true) : microtime(true) - $microtime_start;
    
    }
    
    
    function dotimes($times,$eval,$data=false) {for(;--$times;) eval($eval);}
    
    get_execution_time();
    dotimes(111,'$xml = XMLReader::open("cms.htm");while($xml->read()) {if($xml->nodeType == XMLReader::COMMENT) ++$i;}');
    
    printf(": executed : %f\n<br>",get_execution_time());
    get_execution_time();
    dotimes(111,'$xml = XMLReader::open("cms.htm");while($xml->read()) {if($xml->name === "#comment") ++$i;}');
    printf(": executed : %f\n<br>",get_execution_time());
    //now 2nd case is faster..


- Can somebody tell me **what is going up**? Why these microtimes in one case 1st always slower, and throught static storage 2nd execute is slow down, **WHY**?