One problem with PHP is that, by default, if it encounters non-fatal errors messages it will just output them along with the rest of its output, which means that very often you don't notice the errors. While this might not seem like such a bad thing - after all the errors are non-fatal, right?
In the world of programming, one rule is fairly constant: code will run quickly until it has to handle errors. That is, errors in your code are likely to chew up five, ten, or even twenty times the resources that they should - you will have noticed that Apache/PHP tends to shoot to the top of "top" and/or thrash your hard drive whenever it encounters a series of script problems.
You should thoroughly check the output your pages produce in order to make sure PHP is not emitting errors behind your back. Alternatively, make sure error logging is turned on in your php.ini file, and check it regularly.