ホームページ  >  記事  >  バックエンド開発  >  PHPカーネル - Zendエンジンの詳細説明

PHPカーネル - Zendエンジンの詳細説明

黄舟
黄舟オリジナル
2017-03-09 09:36:466268ブラウズ

前の章では、PHP のライフサイクルを紹介しました。PHP の SAPI は、PHP アーキテクチャ全体の上位レベルにあり、実際のスクリプトの実行は主に Zend エンジンによって完了します。セクションでは、PHP スクリプトの実行について紹介します。

現在、プログラミング言語は 2 つの主要なカテゴリに分類できます:

  • 最初のカテゴリは、C/C++、.NET、Java などのコンパイル言語です。それらの共通点は次のとおりです: ソースコードはコンパイルを実行する前に処理し、コンパイルされたオブジェクト ファイルを実行する必要があります。

  • 2 番目のカテゴリは、PHP、JavaScript、Ruby、Python およびその他のインタープリタ型言語です。これらは、コンパイルなしで「実行」できます

。しかし、それらは実際には機械によって直接理解できるわけではありません。では、これらの言語はどのように実行されるのでしょうか?そして、これらの言語はこれらのソースコードを実行します。実際、これらの言語はコンパイル プロセスを経ますが、通常は実行時にリアルタイムでコンパイルされます。効率を高めるため、すべての言語が実行されるたびに再コンパイルされるわけではありません。たとえば、Python などの PHP のさまざまなオペコード キャッシュ拡張機能 (APC、xcache、eAccelerator など) は、コンパイルされた中間ファイルを保存します。ファイルを pyc/pyo ファイルに変換し、実行するたびに再コンパイルすることによるパフォーマンスの低下を回避します。

<?php
$str = "Hello, Tipi!\n";
echo $str;
?>


PHP スクリプトの実行には、コマンドラインの php プログラムや Apache の mod_php モジュールなどのインタープリターも必要です。 前のセクションでは、PHP の SAPI インターフェイスについて説明しました。PHP スクリプトがどのように実行されるかを説明するために、PHP コマンド ライン プログラムを例に挙げてみましょう。 たとえば、次の PHP スクリプト:

上記のコードが hello.php という名前のファイルに保存されているとします。このスクリプトを実行するには、PHP コマンド ライン プログラムを使用します:

$ php ./hello.php

このコードの出力は明らかに次のようになります。こんにちは、Tipi! では、スクリプトを実行するときに PHP/Zend は何をしますか? これらのステートメントはどのように PHP でこの段落を出力するのでしょうか? 以下、それを段階的に紹介します。




つまり: 字句解析 => 構文解析 => オペコード (中間コード) コンパイル => Zend エンジニアの実行






以上がPHPカーネル - Zendエンジンの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。