I was discussing the speed of various quoting options in PHP with a co-worker. He thought that variables inside of double quotes (“$a plus $b”) were faster than concatenated variables ($a . ' plus ' . $b), but I've heard the opposite. I wanted to try those variations to see which was actually faster on my local machine and how much of a difference there was.
In actual coding practice I prefer whichever format looks the best and is the easiest to understand when reviewing that code; speed be damned.
I wrote the following quick test script. It's devoid of comments because I didn't want those to effect the results. There are obviously lots of other factors that could effect these results as well. I also tried test 2 before test 1 to see if order mattered. The results were ultimately the same.
<?php // Test the speed of certain actions $val = "0 : 0"; $a = 'a'; $b = 'b'; DEFINE('LOOPS', 100000000); $start = time(); for($i=1; $i<=LOOPS; $i++) { $val = "$a : $b"; } $end = time(); $total = $end - $start; echo "Total 1: $total ($start : $end)\n"; $start = time(); for($i=1; $i<=LOOPS; $i++) { $val = $a . ' : ' . $b; } $end = time(); $total = $end - $start; echo "Total 2: $total ($start : $end)\n"; ?>
Here are the results on my laptop.
Total 1: 111 (1258827927 : 1258828038) Total 2: 98 (1258828038 : 1258828136)
In this situation concatenation was a tiny fraction faster than double quotes. But, the difference is so minimal that it's hardly worth noting.