2010-04-27 18 views
34

Stavo solo pensando a me stesso "Come viene eseguito esattamente uno script PHP?" Ho pensato che fosse analizzato prima per errori di sintassi, ecc., E poi interpretato ed eseguito.Come viene eseguito esattamente uno script PHP?

Tuttavia, non so perché Credo sia corretto. Probabilmente ho torto.

Quindi, come è interpretato ed eseguito un file PHP? Quali fasi coinvolge? Come si inseriscono i file inclusi nell'analisi del copione?

Questo è solo per aiutarmi a capirlo. Sono interessato e non riesco a trovare una buona risposta con Google.

+0

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

risposta

15

Fondamentalmente, ogni volta che uno script PHP viene caricato, esso va da due fasi:

  • Il codice sorgente PHP viene analizzato e convertito in ciò che è chiamato opcode
    • Tipo di un equivalente di bytecode Java
    • Se volete vedere ciò che coloro sembrano, è possibile utilizzare il VLD extension
  • Poi, quelli codice operativo vengono eseguiti

Queste diapositive da Sebastian Bergmann, su SlideShare, potrebbe aiutare a capire questo processo un po 'meglio: PHP Compiler Internals

14

PHP è un linguaggio compilato da PHP 4.0

L'idea di quello che è un compilatore sembra essere un argomento che provoca grande confusione. Alcune persone presumono che un compilatore sia un programma che converte il codice sorgente in una lingua in un programma eseguibile. La definizione di cosa è un compilatore è in realtà più ampia di quella.

Un compilatore è un programma che trasforma il codice sorgente in un'altra rappresentazione del codice. La rappresentazione di destinazione è spesso codice macchina, ma può anche essere codice sorgente in un'altra lingua o anche nella stessa lingua.

PHP è diventato un linguaggio compilato nell'anno 2000, quando PHP 4 è stato rilasciato per la prima volta. Fino alla versione 3, il codice sorgente PHP è stato analizzato ed eseguito subito dall'interprete PHP.

PHP 4 ha introdotto il motore Zend. Questo motore suddivide l'elaborazione del codice PHP in diverse fasi. La prima fase analizza il codice sorgente PHP e genera una rappresentazione binaria del codice PHP noto come opcode Zend. Gli opcode sono insiemi di istruzioni simili ai bytecode Java. Questi codici opzionali sono memorizzati in memoria. La seconda fase dell'elaborazione del motore Zend consiste nell'eseguire gli opcode generati.

Modulo ulteriori informazioni vai a http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html

Problemi correlati