I know this is an old post and the answer is new. PHP is a compiled language and all the people who say no it is not for them please refer to my answer on this page on github. So, I'll give a short answer here. PHP is a compiled language because it compiles the whole code before executing or showing the result just like JAVA, C++ or C#. As for clever people who say it is both then every language which you guys call compiled is both an interpreter and compiled. Why do you get blue screen, hmmm?
Interpreter definition: An interpreter compiles a code line by line or a single statement in multiple lines and executes it. An interpreter needs a compiler to understand and execute. You can't just say show me the money!
Compiled Langauge Definition: A compiled language is called a compiled language because it compiles the whole code before showing anything. It checks the syntax of the whole application and then produces the result and even after that we get blue screen. So, does that mean all languages are interpreted? The choice is yours, is blue colour a blue colour or is it black. Because both blue and black start with the letter B.