1、PHP動態(tài)語言執(zhí)行過程:拿到一段代碼后,經(jīng)過詞法解析、語法解析等階段后,源程序會被翻譯成一個個指令(opcodes),然后ZEND虛擬機順次執(zhí)行這些指令完成操作。PHP本身是用C實現(xiàn)的,因此最終調(diào)用的也是C的函數(shù),實際上,我們可以把PHP看做一個C開發(fā)的軟件。
2、PHP的4層運行體系:
(1)Zend引擎:Zend整體用純C實現(xiàn),是PHP的內(nèi)核部分,他將PHP代碼翻譯(詞法、語法解析等一系列編譯過程)為可執(zhí)行opcode的處理并實現(xiàn)相應的處理方法、實現(xiàn)了基本的數(shù)據(jù)結構(如:hashtable、OO)、內(nèi)存分配機制及管理、提供了相應的api方法供外部調(diào)用,是一切的核心,所有的外圍功能均圍繞Zend實現(xiàn)。
(2)Extensions:圍繞著Zend引擎,extensions通過組件式的方式提供各種基礎服務,我們常見的各種內(nèi)置函數(shù)(array系列)、標準庫等都是通過extension來實現(xiàn),用戶也可以根據(jù)需要實現(xiàn)自己的extension的典型應用)。
(3)Sapi:Sapi全稱ServerApplicationProgrammingInterface,也就是服務端應用編程接口,Sapi通過一系列鉤子函數(shù),使得PHP可以和外圍交互數(shù)據(jù),這是PHP非常優(yōu)雅和成功的設計,通過sapi成功的將PHP本身和上層應用解耦隔離,PHP可以不再考慮如何針對不同應用進行兼容,而應用本身也可以針對自己的特點實現(xiàn)不同的處理方式。
(4)上層應用:這就是我們平時編寫的PHP程序,通過不同的spai方式得到各種各樣的應用模式,如何通過webserver實現(xiàn)web應用、在命令行下已腳本方式運行等等。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com