Подтвердить что ты не робот

Как именно выполняется PHP скрипт?

Я просто подумал про себя: "Как точно работает PHP script?" Я думал, что он сначала разбирался для синтаксических ошибок и т.д., А затем интерпретировался и выполнялся.

Однако я не знаю, почему я считаю, что это правильно. Возможно, я ошибаюсь.

Итак, как точно интерпретируется и выполняется PHP файл? На каких этапах это связано? Как включенные файлы вписываются в разбор < script?

Это только для того, чтобы помочь мне разобраться. Я заинтересован и не могу найти хороший ответ с Google.

4b9b3361

Ответ 1

PHP - это скомпилированный язык, поскольку PHP 4.0

Идея того, что является компилятором, кажется, является предметом, который вызывает большую путаницу. Некоторые люди предполагают, что компилятор - это программа, которая преобразует исходный код на одном языке в исполняемую программу. Определение того, что является компилятором, на самом деле шире, чем это.

Компилятор - это программа, которая преобразует исходный код в другое представление кода. Представление цели часто является машинным кодом, но может также быть исходным кодом на другом языке или даже на том же языке.

PHP стал скомпилированным языком в 2000 году, когда PHP 4 был выпущен в первый раз. До версии 3 исходный код PHP был разобран и выполнен сразу интерпретатором PHP.

В PHP 4 представлен движок Zend. Этот механизм разбивает обработку PHP-кода на несколько этапов. Первая фаза анализирует исходный код PHP и генерирует двоичное представление кода PHP, известного как коды кода Zend. Коды операций - это команды инструкций, аналогичные байт-кодам Java. Эти коды операций хранятся в памяти. Вторая фаза обработки движка Zend заключается в выполнении сгенерированных кодов операций.

Введите дополнительную информацию в http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html

Ответ 2

В принципе, каждый раз, когда загружается PHP script, он выполняется двумя шагами:

  • Исходный код PHP анализируется и преобразуется в так называемые коды операций
    • Вид эквивалента байт-кода JAVA
    • Если вы хотите посмотреть, как они выглядят, вы можете использовать расширение VLD
  • Затем выполняется этот код операции

Эти слайды от Себастьяна Бергмана на слайд-шоу могут помочь вам понять этот процесс немного лучше: Внутренние компиляторы PHP