I'd even use <?php echo '<li><img src="' . $row['image'] . '" /></li>'; ?>
There's a speed difference, but that would be barely measurable and usually not at all noticable. Every string in double quotes is parsed first. That's why it's better to not use double quotes for strings at all. If you use extremely many strings with vars in it, it could become a measurable difference - but doing that would be quite bad design in the first place.
Btw.: The same is true for often switching the parser on and off with <?php and ?>.
The main reason for doing the above is good coding practice.
Others may need to understand your script too. And maybe yourself too some years later.
Vars in strings can be easier overlooked than vars included like this.
Even more so on IDEs with syntax highlighting.
I've even seen people put a newline before every var inserted in this way. But IMHO that's a little too much. ;)
More or less offtopic: No I didn't read all the fighting going on in the other answers, but I know the old "no it's not slower" vs. 'Yes it is' kindergarden by heart. ;)
For christs sake, you're coders, damnit. Just test it:
<?php
$startt = microtime(true);
for ($i = 0; $i <= 10000000; $i++) {
$test = 'This is test number ' . $i;
// $test = "This is test number " . $i;
// $test = "This is test number $i";
}
$endt = microtime(true);
echo 'Used time: ' . ($endt - $startt);
?>
For me the first one gave 5.1321198940277, the second one 5.2075009346008 and the third one 6.4821639060974 (more than 1.2 secs difference). Q.E.D. so far.
The interesting thing would be to try that on different systems. Maybe I'll make my own question for this.