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

圖片.png