Update: see the completely different results for PHP 5.2.3.
On the PHP manual page for the print function, someone's posted a benchmark for various methods of string concatentation/interpolation. The results were really dubious, so I ran a modified version myself (note: may also contain errors, but the results at least seem reasonable). Here's the script, and here are the results:
What does this mean?
- If there's no interpolation, it doesn't make any difference if you use single or double quotes around strings. However, I'm not entirely sure—in this test—whether PHP is actually parsing the double-quoted string on each iteration: apparently "the first access of microtime() doesn't happen until the php file is completely parsed and converted into opcodes".
- If there is interpolation, sprintf is faster than double quotes; I suspect this is because it's easier to search for the locations of %s in a string than to search for $whatever. Neither are as fast as concatenation with single quotes.
Note: these tests were conducted with PHP 5.1.4 on Intel Mac OS 10.4.9.
Note: A first version of these graphs was created in Swivel, but it's so awkward to make graphs and update data I had to get rid of them. Many Eyes is even worse, so I ended up using Google Spreadsheets via Excel. Ugh.