As most languages PHP allows many ways to solve a problem. Some are faster then others. Here are a few ways to improve your PHP code.
Loop
At some point your program will require a loop. And loop is considered as efficiency killer if you have many nested loop (means loop in a loop) as one loop will required to run ‘n’ times and if you have 1 nested loop, this means your program will have to run n2 times. There are many ways we can define a loop in PHP. But how do you know which one is the best way to loop your data? Apparently, using a for loop is better than foreach and while loop if the maximum loop is pre-calculated outside the for loop!
// For each loop the count function is being called.
for($i =0; $i < count($array);$i++){
echo 'This is bad';
}
#Better than foreach and while loop
$total = (int)count($array);
for($i =0; $i < $total;$i++){
echo 'This better, max loop was pre-calculated';
}
Single Vs Double Quotes
single(’) quote is faster than double(”) quote. Why? Because PHP will scan through double quote strings for any PHP variables (additional operation). So unless you have a $var inside the string use single quotes.
$var = 'I have some text';
$var2 = "I have some text"; // We dont have vars so single would be good;
$var3 = "I have some $var"; // In this case the double quotes is necessary
Pre increment vs Post increment
In PHP, it seems like pre increment is better than the other ways of performing an increment. Its around 10% better than post increment? The reason? Some said that post increment made certain copy unlike pre increment.
$i++;
$++i
$i+=1;
$i = $i + 1;
Echo Vs Print
echo is better. But how much better? Its around 12%-20% faster using echo compare to print when there is no $ symbol in the printing string. And around 40-80% faster if there is an $ symbol used in a printing string!
Dot Vs Commas Concatenation
I use dot to concatenate my stuff. Such as the one shown below:
$a = 'PHP ';
$b = 'Tips';
echo $a.$b;
The other way is:
$a = 'PHP ';
$b = 'Tips';
echo $a,$b;
Tests show that dot is more preferable if there are no variables or $ symbol involved which is around 200% faster. On the other hand, commas will help to increase around 20%-35% efficiency when dealing with $ symbols.
explode Vs preg_split
To split a string the usual way is to use explode because it support even on PHP4.0 and that’s also what i was taught on school. The answer in term of efficiency is explode. Split supports regular express and this makes it quite the same comparison between str_replace and preg_replace, anything that have regular expression support will usually be a bit more slower than those that doesn’t support it. It took around 20.563% faster using explode in PHP.
These benchmarks and others can be found here: http://net-beta.net/ubench/