本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于php中的內(nèi)核組成以及php代碼執(zhí)行過(guò)程的介紹,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
1、PHP的內(nèi)核組成
php總共包括3個(gè)模塊:php內(nèi)核,zend引擎,PHP擴(kuò)展層
1.1 php內(nèi)核:用于處理請(qǐng)求,文件流,錯(cuò)誤處理等相關(guān)處理。
1.2. zend引擎:將源文件轉(zhuǎn)換成機(jī)器語(yǔ)言,然后在zend 虛擬機(jī)上運(yùn)行
zend 整體由兩個(gè)部分組成:
編譯器:負(fù)責(zé)將php代碼編譯為可執(zhí)行的opcodes
執(zhí)行器:負(fù)責(zé)將執(zhí)行編譯器輸出的opcodes,也就是執(zhí)行php腳本中編寫(xiě)的代碼邏輯
1.3.擴(kuò)展
擴(kuò)展層是一組函數(shù)、類(lèi)庫(kù)和流,php使用它們來(lái)執(zhí)行一些特定的操作,比如安裝php_openssl擴(kuò)展來(lái)使用 open ssl函數(shù),常見(jiàn)的擴(kuò)展有,
已安裝擴(kuò)展在php安裝路徑ext目錄下。
2、PHP代碼執(zhí)行過(guò)程
PHP 的大致的執(zhí)行過(guò)程如下:
我們寫(xiě)的php代碼,是不能夠直接執(zhí)行的,要先經(jīng)過(guò)詞法、語(yǔ)法分析器,然后再經(jīng)過(guò)編譯器編譯,看到這里可能會(huì)想,逗我呢這是?php不是腳本語(yǔ)言么?怎么還要還要像C/C++那樣經(jīng)過(guò)編譯?其實(shí)嚴(yán)格來(lái)說(shuō)php算是編譯語(yǔ)言,經(jīng)過(guò)詞法語(yǔ)法分析后,再編譯,編譯成了opcode中間碼,然后再由zend執(zhí)行引擎執(zhí)行,那么從這點(diǎn)來(lái)講,php是先編譯后執(zhí)行的,這點(diǎn)跟java很像,但java是把代碼(.java)編譯成字節(jié)碼,然后再由jvm去執(zhí)行的。
相關(guān)推薦:
PHP內(nèi)核解密系列:zend_execute的執(zhí)行過(guò)程
PHP內(nèi)核探索之解釋器的執(zhí)行過(guò)程
以上就是php中的內(nèi)核組成以及php代碼執(zhí)行過(guò)程的介紹的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選