Некоторые комментарии выше запутаны и не совсем точны. Это должно дать небольшое понимание.
«Мы все знаем, что все программное обеспечение становится машинным языком»
Оставляя в стороне код, который находится под машинным языком, например, найденный в CIS C или EIS C (например, Linn Rekursiv от тех, кто раньше делал проигрыватели), программное обеспечение не может становиться машинным языком, а просто интерпретироваться как есть или компилироваться и выполняться программа, реализующая виртуальную машину. Таким образом, он может быть преобразован, но не обязательно на машинный язык.
«Как выполняется php код и как сервер его обрабатывает»
По состоянию на PHP 4, PHP исходный код компилируется в байт-код, а байт-код выполняется виртуальной машиной, так называемым «Zend Engine». Поскольку результат компиляции является детерминированным c, это, естественно, поддается кэшированию, и в PHP установках часто будет компонент кэширования, который оптимизирует и кэширует скомпилированный байт-код в общей памяти. Кэш позволяет пропускать этап компиляции для файлов, которые кэшируются и не изменяются, и, гарантируя выполнение некоторых других предварительных требований, связанных с адресацией памяти, скомпилированный код может выполняться непосредственно из кеша общей памяти без десериализации и минимальных накладных расходов, таким образом обеспечивает хорошее ускорение.
Существуют различные способы, которыми сервер может запускать выполнение PHP, например, непосредственный запуск программы PHP командной строки, подключение ядра PHP к веб-серверу или PHP процессы, выполняемые в пуле с передачей ввода-вывода между сервером и PHP через некоторый механизм IP C.
Вместо защиты исходного кода системы защиты, такие как Zend и ionCube, используют компиляцию для Процесс байт-кода сначала также компилирует исходный код в байт-код, а затем идет дальше, чтобы защитить байт-код различными способами, возможно, также используя пользовательский механизм выполнения.
Системы байт-кода, как правило, имеют машинные инструкции, которые близки r на язык высокого уровня, на который они нацелены, а не на собственный машинный код, с байт-кодом PHP, содержащим инструкции для непосредственной реализации foreach и некоторых других ключевых слов, например. В результате байт-код, как правило, легче декомпилировать, и примерно с 2006 года для PHP появились декомпиляторы, впервые появившиеся в Китае, а затем с такими проектами, как XCache.