ホームページ  >  記事  >  バックエンド開発  >  PHP の原則と実行サイクル分析の深い理解、php_PHP チュートリアルの深い理解

PHP の原則と実行サイクル分析の深い理解、php_PHP チュートリアルの深い理解

WBOY
WBOYオリジナル
2016-07-12 08:50:57749ブラウズ

PHP原則の実行サイクル分析を深く理解する、phpを深く理解する

この記事では、PHP原則の実行サイクルについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

PHP の実行サイクルは、最初に作成した PHP スクリプトから実行される最終スクリプトまで、実際には次の段階に分かれています。

まず、Zend Engine (ZE) は字句アナライザー (Lex によって生成され、ソース ファイルは Zend/zend_ language_sanner.l にあります) を呼び出し、実行する PHP ソース ファイルからスペースとコメントを削除し、それを次の式で 1 ​​つのトークンに分割します。 1つ。

その後、ZE は取得したトークンを構文アナライザー (yacc によって生成され、ソース ファイルは Zend/zend_ language_parser.y にあります) に転送し、オペコードを 1 つずつ生成します。オペコードは通常、op 配列の形式で存在します。 PHP実行言語の途中です。

最後に、ZE は zend_executor を呼び出して op 配列を実行し、結果を出力します。 (つまり、ソースファイルを機械語に変換してから、仮想マシン上で実行します。)

ZE は仮想マシンであるため、オペレーティング システムの種類を考慮せずに PHP スクリプトを作成できます。これが PHP の移植性の理由です。 ZE は CISC (複雑な命令プロセッサ) であり、最も単純な ZEND_ECHO (エコー) から複雑な ZEND_INCLUDE_OR_EVAL (include、require) までを含む 150 の命令をサポートします (具体的な命令は Zend/zend_vm_opcodes.h にあります)。書かれた内容は、最終的にこれら 150 個の命令 (オペコード) のシーケンスに処理され、最終的に実行されます

PHP はスクリプト言語です。つまり、ユーザーが作成した PHP コードは、最終的には PHP インタープリターによって解釈され、実行され、PHP 仮想マシン ZE の仮想命令 (OPCODES) に変換されます。実行のために。

では、PHP スクリプトは最終的に何に「翻訳」されるのでしょうか? 言い換えれば、オペコードはどのようなものになるでしょうか?

オペコードは、PHP スクリプトからコンパイルされた中間言語です

PECL には、Derick Rethans によって開発された VLD (Vulcan Logic Dissassembler) モジュールを利用したそのようなモジュールがすでに存在します。このモジュールをダウンロードしてPHPに読み込むだけで、簡単な設定でスクリプトの翻訳結果を得ることができます。

VLDモジュールのインストールと適用:

リーリー

php.ini ファイルを編集し、vld 拡張機能を有効にします。

例:

次のようなファイルを作成します: hello.php

リーリー

実行:

リーリー

別の動画を見る:

リーリー

実行:

リーリー

注: ZEND_HANDLE_EXCEPTION は Zend/zend_vm_opcodes.h の 149 番目の命令です

compiled vars: !0 = $i !0 (*zval) から取得した変数名 "i" を示します。 #0 文字列「this+is+a+string」を !0 に代入します

#1 文字列の連結

#2 ショー

これらの中間コードは、Zend VM (Zend Virtual Machine) によって直接実行されます。実際に実行を担当する関数は zend_execute (zend_execute.h) です。

さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください: 「PHP 数学的演算スキルの概要」、「PHP 操作オフィス文書スキルの概要 (word、excel、access、ppt を含む)」、 『PHP配列(配列)』操作スキル完全集』、『PHPソートアルゴリズムまとめ』、『PHP共通トラバーサルアルゴリズムとテクニックまとめ』、『PHPデータ構造とアルゴリズムチュートリアル』、『PHPプログラミングアルゴリズムまとめ』、 「PHP 正規表現の使用法の概要」、「PHP の操作と演算子の使用法の概要」、「PHP 文字列の使用法の概要」、および「PHP の共通データベース操作スキルの概要」

この記事が PHP プログラミングのすべての人に役立つことを願っています。

http://www.bkjia.com/PHPjc/1133036.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/1133036.html技術記事 PHP の原理と実行サイクル分析の深い理解、PHP の深い理解 この記事では、PHP の原理の実行サイクルについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです: PHP の実行サイクル、最初から...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。