FizzBuzz ladder approach performance test

The FizzBuzz task is quite popular specially on interviews for juniors or middle developers. I quite often hear that ladder approach is faster, but I do not think so. I made benchmark test to be absolutely sure, which is actually the main goal for this blog post.

Below you can see both implementation of FizzBuzz.

For testing purposes I executed this two functions 500 times with $startFrom value from 0 to 500 and the result shows that:
FizzBuzz finished for 8.325s
FizzBuzz2 finished for 7.773s

To be sure I execute it on brand new machine to be sure it's not affected by my CPU load.
function FizzBuzz($startFrom)
{
    $r = '';
    for ($startFrom; $startFrom != 0; $startFrom--) {

        if (!($startFrom % 15)) {
            $r .= 'FizzBuzz';
        } else if (!($startFrom % 3)) {
            $r .= 'Fizz';
        } else if (!($startFrom % 5)) {
            $r .= 'Buzz';
        }
    }
}

function FizzBuzz2($startFrom)
{
    $r = '';
    for ($startFrom; $startFrom != 0; $startFrom--) {

        if (!($startFrom % 3)) {
            $r .= 'Fizz';
        }

        if (!($startFrom % 5)) {
            $r .= 'Buzz';
        }
    }
}

// Function FizzBuzz test
$start_time = microtime(TRUE);
for ($i = 0; $i < 500; $i++) {
    for ($i2 = 0; $i2 < 500; $i2++) {
        FizzBuzz($i2);
    }
}
$end_time = microtime(TRUE);
echo $diff_time = $end_time - $start_time."\n";

// Function FizzBuzz2 test
$start_time = microtime(TRUE);
for ($i = 0; $i < 500; $i++) {
    for ($i2 = 0; $i2 < 500; $i2++) {
        FizzBuzz2($i2);
    }
}
$end_time = microtime(TRUE);
echo $diff_time = $end_time - $start_time."\n";