When working with PHP as a programming language it is good to have a basic understanding of the internals of the language.
First of all we should separate PHP into the language (or syntax) and the interpreter as they can be different things. The language definition or syntax of PHP can be found on github or of course on php.net. All implementations should follow this standard.
We all know the default PHP interpreter, this is the most widely used interpreter which uses the Zend engine. It is the easiest to work with and pretty much all libraries and or modules will support this interpreter. However it is good to know that there are also other PHP interpreters, some of which have become quite popular like HHVM by facebook. Please note that when choosing a different interpreter that not all libraries and or modules will work. This is due to small differences between them.
When we would like to execute some PHP code, the interpreter is the process that does the heavy lifting.
Everytime we request to load a class for the first time (within a typical life cycle) the autoloader is used to find the file on the file system. After the contents of the file are read, they are parsed and compiled into something that the interpreter can execute (it cannot execute PHP directly).
What exactly the PHP code is compiled to depends on the interpreter as different interpreters might have different ways to execute code. For more information please see the section about the specific interpreter.