<h1>編譯流程</h1>
PHP總共有三個模塊:內(nèi)核、Zend引擎昌执、以及擴(kuò)展層;PHP內(nèi)核用來處理請求诈泼、文件流懂拾、錯誤處理等相關(guān)操作;Zend引擎(ZE)用以將源文件轉(zhuǎn)換成機(jī)器語言铐达,然后在虛擬機(jī)上運(yùn)行它委粉;擴(kuò)展層是一組函數(shù)、類庫和流娶桦,PHP使用它們來執(zhí)行一些特定的操作贾节。
比如,我們需要mysql擴(kuò)展來連接MySQL數(shù)據(jù)庫衷畦;當(dāng)ZE執(zhí)行程序時可能會需要連接若干擴(kuò)展栗涂,這時ZE將控制權(quán)交給擴(kuò)展,等處理完特定任務(wù)后再返還祈争;
最后斤程,ZE將程序運(yùn)行結(jié)果返回給PHP內(nèi)核,它再將結(jié)果傳送給SAPI層菩混,最終輸出到瀏覽器上忿墅。
php是個腳本語言,zend編譯器把php代碼編譯成opcode沮峡,然后由zend虛擬機(jī)來執(zhí)行疚脐,zend虛擬機(jī)是架構(gòu)在操作系統(tǒng)上
圖片.png