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指令碼在每次被解釋時進行初始化,在解釋完畢...