2010-04-27 19 views
34

Estaba pensando solo "¿Cómo se ejecuta exactamente un script PHP?" Pensé que se analizó primero para errores de sintaxis, etc., y luego se interpretó y ejecutó.¿Cómo se ejecuta exactamente un script PHP?

Sin embargo, no sé por qué Creo que es correcto. Probablemente estoy equivocado.

Entonces, ¿cómo se interpreta y ejecuta exactamente un archivo PHP? ¿Qué etapas involucra esto? ¿Cómo encajan los archivos incluidos en el análisis del script?

Esto es solo para ayudarme a entenderlo. Estoy interesado y no puedo encontrar una buena respuesta con Google.

+0

Esto? https://stackoverflow.com/a/46507205/1429432 –

Respuesta

15

Básicamente, cada vez que se carga un script PHP, que pasa por dos etapas:

  • se analiza el código fuente de PHP, y se convierte en lo que se llama códigos de operación
    • Una especie de equivalente de código de bytes de Java
    • Si usted quiere ver lo que los ven como, se puede utilizar el VLD extension
  • Entonces, los códigos de operación se ejecuta

Estas diapositivas de Sebastian Bergmann, en SlideShare, podría ayudar a entender ese proceso un poco mejor: PHP Compiler Internals

14

PHP es un lenguaje compilado a partir de PHP 4.0

La idea de lo que es un compilador parece ser un tema que causa gran confusión. Algunas personas suponen que un compilador es un programa que convierte el código fuente en un idioma en un programa ejecutable. La definición de qué es un compilador es en realidad más amplia que eso.

Un compilador es un programa que transforma el código fuente en otra representación del código. La representación de destino suele ser un código máquina, pero también puede ser un código fuente en otro idioma o incluso en el mismo idioma.

PHP se convirtió en un lenguaje compilado en el año 2000, cuando PHP 4 se lanzó por primera vez. Hasta la versión 3, el código fuente de PHP fue analizado y ejecutado de inmediato por el intérprete de PHP.

PHP 4 introdujo el motor Zend. Este motor divide el procesamiento del código PHP en varias fases. La primera fase analiza el código fuente de PHP y genera una representación binaria del código PHP conocido como códigos de operación Zend. Los códigos de operación son conjuntos de instrucciones similares a los bytecodes de Java. Estos códigos de operación se almacenan en la memoria. La segunda fase del procesamiento del motor Zend consiste en ejecutar los códigos de operación generados.

Forma más información, vaya a http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html

Cuestiones relacionadas