There are numerous discussions in the blogosphere about whether to use echo versus print, if for() is faster than while(), etc. and though the gains are usually very small, I decided to add my thoughts to the debate. I found an article on optimization through coding habits in Ilia Alshanetsky's zend performance slides.
According to his results:
- Calling require_once() 10000 times in a for() loop with an empty file is 4x faster.
- With a simply autoload requiring a class and 10000 loops of new Foo() versus require_once('foo.php'); new Foo() shows that __autoload() is ~3.7 times faster.
- If a class method can be static, declare it static. Speed improvement is by a factor of 4.
- Avoid function calls within for() loop control blocks
- Always, always quote array keys.
- Get rid of 'harmless' error messages - they take time to generate and output.
I am not out to prove Ilia wrong - he knows PHP better than most - and for all I know, they could have optimized those very functions in PHP 5.2. [...] It would appear that there are improvements, albeit small, to achieve from minimal effort. Plus I was surprised by the discrepancies I found compared to Ilia's recommendations.