На хабре нашел вот такую информацию:
Вначале, написанный нами код разбирается лексическим анализатором. Далее, полученные лексемы, передаются в синтаксический анализатор. Если синтаксический анализатор дал добро, то лексемы передаются транслятору, а он, в свою очередь, генерирует так называемые opcodes (operation codes). И только после этого, в дело вступает виртуальная машина PHP (та самая Zend Engine) которая и выполняет наш алгоритм из получившихся opcodes. Opcodes так же называют эдаким php-шным ассемблером.
Но также известно что php интерпретируемый язык.
Вопрос : вышеописанный метод исполняется построчно или сначала выполняется поэтапно(ожидая когда анализатор полностю проверит код) а потом уже 'опкод' выполняет построчно
Насколько я знаю PHP по классификации является чем-то средним между интерпретируемые и компилируемым языком. Основное различие между этими классами в том что в компилируемых языках весь текст программы переводиться в машинный код программами, которые называются трансляторами (компиляторами), только после создания исполняемого файла, алгоритм запускается в работу. В интерпретируемых же языках, программа под названием интерпретатор проходит отдельно по каждой строчке кода и отдельно их выполняет. Преимущества этого над компилируемыми языками в том что можно контролировать программу на любом ее этапе, большой же недостаток в быстродействии, т к машинный код исполняется процессором намного быстрее, и так же в завершении исполнения при первой же ошибке. Так вот в движке PHP присутствует и программа транслятор и программа интерпретатор. В целях быстродействия сначала текст программы переводиться в байт-код, но при этом исполнительный файл не создаётся, и потом уже этот байт-код интерпретируется "построчно". Таким образом выходит некий гибрид, где сначала программа транслируется (компилируется) в более быстрый байт-код, а потом эта же программа, только уже представленная байт-кодом интерпретируется и исполняется. Также это движок PHP называют интерпретатором со встроенным блоком трансляции, который оптимизирует код той самой интерпретации.
Как-то так. Надеюсь Вам это поможет!
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости