PHP Single vs. Double Quotes
For a long time, I've been a proponent of using single-quotes as opposed to double-quotes when assigning string literals (strings containing no variables) to a variable (eg: $var = 'string'; VS $var = "string").
I just did some research to find out how much (if any) impact using single-vs-double quotes had on performance. I took the code from this blog post: http://spindrop.us/2007/03/03/php-double-versus-single-quotes/ modified the MAX constant to 8,000,000 and then ran the test on our Nexcess server. The results were fairly consistent:
Time 1: 5.9485120773315 ($c = "test " . $i; )
Time 2: 7.0326972007751 ($c = "test $i"; )
Time 3: 5.9164550304413 ($c = 'test ' . $i; )
It's clear that embedding variables in strings is less efficient, but the difference between normal single-vs-double quotes is negligible (at least on our server configuration with this test).
Despite the lack of clear performance benefits, I still think it best practice to use single-quotes when using string literals, as it denotes that a string doesn't contain any variables. One benefit of this is that when skimming code, you can more quickly process which variables are string literals vs strings with embedded variables.
The Zend Framework Coding Standard also recommends this practice: http://framework.zend.com/manual/en/coding-standard.coding-style.html
Posted on February 7, 2010
Posted by Erik Hansen
Add comment
Follow Us
Popular Posts
Blog Categories
- Design (4)
- Development (13)
- Magento Development (32)
- PHP (5)
- Security (0)
- E-Commerce (6)
- General Business (6)
- Llama Culture (3)
- Magento (54)
- Management (4)
- Wiz (3)
- Online Marketing (1)
- Productivity (2)
- Uncategorized (2)



Comments
Most programming languages
Most programming languages don't give you that much latitude when it comes to quotes. Of course, the guys that brought us PHP are kind of on the dyslexic side when it comes to a lot of things. The name itself for example. How exactly to you get PHP from Hypertext Pre-Processor? Shouldn't it be HPP?
And what about the nastiness that is a PHP foreach array loop?
$arr = array(1, 2, 3, 4);
foreach ($arr as $value) {
// do something
}
Any normal human being would read this as:
for each array as value do something
Wouldn't it make far more sense to do something like:
$arr = array(1, 2, 3, 4);
foreach ($value in $arr) {
// do something
}
for each value in array do something
Of course, those are just my thoughts on it - YMMV.