Ответ 1
Исходный код PHP проходит через шаг, где он скомпилирован в PHP Opcode. Эта идея была реализована на различных платформах, в первую очередь с Java. Теоретически, имея отдельную рабочую среду "виртуальной машины" для запуска Opcodes, разработчики языка могут отделять язык от проблем с переносимостью.
Вы можете найти список этих Opcodes в руководстве
В типичной среде PHP без кэширования кода операции шаг компиляции и шаг "run-time" неразличимы, однако, когда вы вводите "кеш ускорителя /opscode ", такой как APC или продукт Zend Platform, вы можете видеть что это отдельные шаги в этом процессе.
После того, как script был скомпилирован в PHP Opscodes, его можно запустить из кеша без необходимости перекомпилировать из источника, где эти ускорители могут значительно повысить производительность.
Если вы сосредоточитесь на аспекте "времени выполнения" PHP, вы видите "интерпретируемый" характер PHP, так как он требует среды выполнения, по сравнению с компилированным/связанным языком, например c/С++, который работает как родной системной программы.
В случае PHP, php-программа - это собственная операционная система (или родная как модуль веб-сервера собственной ОС).
Не похоже на то, как Java запускается внутри "виртуальной машины Java" (JVM) "PHP-скрипты выполняются внутри PHP и, следовательно, не содержат особенностей того, как операции будут выполняться операционной системой.