2010-04-27 12 views
34

Po prostu pomyślałem sobie "Jak dokładnie wykonywany jest skrypt PHP?" Pomyślałem, że najpierw został on przetworzony na błędy składni itp., A następnie zinterpretowany i wykonany.Jak dokładnie wykonywany jest skrypt PHP?

Jednak nie wiem, dlaczego Uważam, że to prawda. Prawdopodobnie jestem w błędzie.

Jak dokładnie jest interpretowany i wykonywany plik PHP? Jakie etapy to obejmuje? W jaki sposób dołączone pliki pasują do parsowania skryptu?

To tylko po to, aby mi pomóc. Jestem zainteresowany i nie mogę znaleźć dobrej odpowiedzi w Google.

+0

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

Odpowiedz

15

Zasadniczo, za każdym razem skrypt PHP jest załadowany, to idzie przez dwóch etapach:

  • Kod źródłowy PHP jest analizowany, a przekształca się w to, co się nazywa opcodes
    • Rodzaju ekwiwalent od kodu bajtowego Javy
    • Jeśli chcesz zobaczyć, co to wyglądać, można użyć VLD extension
  • Następnie te opcode są wykonywane

Te slajdy z Sebastian Bergmann, na Slideshare, może pomóc zrozumieć ten proces nieco lepiej: PHP Compiler Internals

14

PHP jest skompilowane język od PHP 4.0

Pomysł co to kompilator wydaje się być tematem, który wywołuje wielkie zamieszanie. Niektórzy ludzie zakładają, że kompilator to program, który konwertuje kod źródłowy w jednym języku na program wykonywalny. Definicja tego, co jest kompilatorem, jest w rzeczywistości szersza.

Kompilator to program przekształcający kod źródłowy na inną reprezentację kodu. Reprezentacja celu jest często kodem maszynowym, ale równie dobrze może być kodem źródłowym w innym języku lub nawet w tym samym języku.

PHP stało się językiem kompilowanym w roku 2000, kiedy PHP 4 zostało wydane po raz pierwszy. Do wersji 3 kod źródłowy PHP był analizowany i wykonywany od razu przez interpreter PHP.

PHP 4 wprowadziło silnik Zend. Ten silnik dzieli przetwarzanie kodu PHP na kilka faz. Pierwsza faza analizuje kod źródłowy PHP i generuje binarną reprezentację kodu PHP zwanego opcjami Zend. Opcodes to zestawy instrukcji podobne do bajtów Java. Te kody operacyjne są przechowywane w pamięci. Druga faza przetwarzania silnika Zend polega na wykonywaniu wygenerowanych kodów opcyjnych.

Więcej informacji pod numerem http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html

Powiązane problemy