楽しいだけで十分です

好きなことを書きます

PHPのソースコードが実行されるまでの流れ

PHPソースコードが、実行されるまでを勉強したのでメモ。
実際にコードを書く時に意識することはないですが、エラーのデバッグ時に役立つので、知っておいた方が良さそうです。

概略

PHPプログラムが実行される度に、内部的にソースコードコンパイルを行います。
コンパイルされた結果が、「オペコード(Opcodes: Operation codes)」と呼ばれる中間コードです。
そのオペコードを実行マシンが実行することで、PHPのプログラムが動作できます。

コンパイルの流れ図 f:id:yinm:20170123220457p:plain

少し詳細

ソースコードコンパイルするまでの流れを詳細に見ると、レキサー(Lexer)」「パーサー(Parser)」というプログラムの処理を行っています。
レキサーとは字句解析を行うプログラムのことで、PHPプログラムを解析し、構文をバラバラのトークンに分解します。
パーサーとは構文解析と意味解析(コード生成)を行うプログラムのことで、レキサーによって生成されたトークンをパースし、オペコードへ変換します。

参考

パーフェクトPHP