Basically, PHP is interpreted but PHP is compiled down to an intermediate bytecode that is then interpreted by the runtime Zend engine.
PHP compiler is responsible for
- convert the code to a bytecode that can be used by the runtime engine.
- resolve functions, names and classes names
- creating a symbol table
PHP Interpreter does
- Goes through the bytecode line by line and executes it
- Handles runtime exception