Differences between compilation types

Something I've never really known enough about was how the code (mostly PHP) I was writing day to day was actually executed. I had a high level view of what this meant for PHP (translated into opcodes and executed) but I was more interested what it really meant for all languages - and which types of interpreters and compilers were available