PHP之執行機制與原理

2021-09-11 20:24:44 字數 608 閱讀 2624

php通過sapi與apache相連。

php總共有三大模組:核心(處理網路請求、檔案流、錯誤處理等相關操作)、zend引擎(將原始檔轉化成機器語言後在虛擬機器上執行它,虛擬機器就是zend引擎,簡稱ze)、拓展層(函式、類庫、流)。

當ze執行程式時可能會需要連線多個拓展層,這時ze將控制權交給拓展,等待處理好特定任務後再返回。

最後,ze將程式執行結果返回給php核心,php核心再將結果通過sapi傳給apache,通過伺服器httpresponse返回到瀏覽器。

php簡化執行過程與上述例子類似,但更加複雜,如下:

掃瞄,將index.php內容變成乙個個語言片段(token)

解析,將乙個個語言片段變成乙個個有意義的表示式

編譯,將表示式編譯成中間碼(opcode)

執行,將中間碼一條一條的執行

輸出,將要輸出的內容輸出到緩衝區

如何讓php的**執行的更快?

PHP與Nginx之間的執行機制以及原理

nginx是 人最早開發的webserver,現在已經風靡全球,相信大家並不陌生。php也通過二十多年的發展來到了7系列版本,更加關注效能。這對搭檔在最近這些年,叱吒風雲,基本上lnmp成了當下的標配。可是,你用了這麼多年的nginx php的搭配,你真正知道他們之間是怎麼互動怎麼通訊的麼?ngin...

PHP的執行機制

php和python ruby的執行機制有乙個本質區別 php是每次http請求過來以後,初始化全部資源 例如建立資料庫鏈結 載入系統類庫,建立快取等等 處理完畢,釋放全部資源,這不像python ruby之類帶有gc的指令碼語言,python ruby是初次啟動的時候初始化資源,隨後的請求就不必再...

理解PHP的執行機制

php是一種純解釋型在服務端執行的可以內嵌html的指令碼語言,尤其適合開發web應用程式。請求乙個 php 指令碼時,php 會讀取該指令碼,並將其編譯為 zend 操作碼,這是要執行的 的一種二進位制表示形式。隨後,此操作碼由 php 執行並丟棄。php指令碼在每次被解釋時進行初始化,在解釋完畢...