Strange... I ran a similar test, but came up with very different results. I used the code below, except that in the real code, the string contained Hello World written 350+ times, not just once. I ran it three times with "s, and three times with 's.
<?php
$timeparts = explode(" ",microtime());
$starttime = $timeparts[1].substr($timeparts[0],1);
$max = 1000000;
for ($i=0; $i < $max; $i++){
$string = "Hello World";
}
$timeparts = explode(" ",microtime());
$endtime = $timeparts[1].substr($timeparts[0],1);
echo bcsub($endtime,$starttime,6)
?>
Results were:
" = 8.483677, 7.578489, 8.085688
' = 12.464859, 12.479967, 12.478757
I suppose that, seeing as it looped 1000000 times, the difference is actually pretty miniscule. 4.5 seconds divided by 1000000 is pretty darn small! But either way, I definitely would have thought that the results would have been the other way around.