64㎡年輕小夫妻的家,三居改一居,安放屋主的所有喜好!
2023-01-30
更新時間:2022-04-08 04:07:27作者:未知
1、PHP動態(tài)語言執(zhí)行過程:拿到一段代碼后,經(jīng)過詞法解析、語法解析等階段后,源程序會被翻譯成一個個指令(opcodes),然后ZEND虛擬機(jī)順次執(zhí)行這些指令完成操作。PHP本身是用C實(shí)現(xiàn)的,因此最終調(diào)用的也是C的函數(shù),實(shí)際上,我們可以把PHP看做一個C開發(fā)的軟件。
2、PHP的4層運(yùn)行體系:
(1)Zend引擎:Zend整體用純C實(shí)現(xiàn),是PHP的內(nèi)核部分,他將PHP代碼翻譯(詞法、語法解析等一系列編譯過程)為可執(zhí)行opcode的處理并實(shí)現(xiàn)相應(yīng)的處理方法、實(shí)現(xiàn)了基本的數(shù)據(jù)結(jié)構(gòu)(如:hashtable、OO)、內(nèi)存分配機(jī)制及管理、提供了相應(yīng)的api方法供外部調(diào)用,是一切的核心,所有的外圍功能均圍繞Zend實(shí)現(xiàn)。
(2)Extensions:圍繞著Zend引擎,extensions通過組件式的方式提供各種基礎(chǔ)服務(wù),我們常見的各種內(nèi)置函數(shù)(array系列)、標(biāo)準(zhǔn)庫等都是通過extension來實(shí)現(xiàn),用戶也可以根據(jù)需要實(shí)現(xiàn)自己的extension的典型應(yīng)用)。
(3)Sapi:Sapi全稱ServerApplicationProgrammingInterface,也就是服務(wù)端應(yīng)用編程接口,Sapi通過一系列鉤子函數(shù),使得PHP可以和外圍交互數(shù)據(jù),這是PHP非常優(yōu)雅和成功的設(shè)計,通過sapi成功的將PHP本身和上層應(yīng)用解耦隔離,PHP可以不再考慮如何針對不同應(yīng)用進(jìn)行兼容,而應(yīng)用本身也可以針對自己的特點(diǎn)實(shí)現(xiàn)不同的處理方式。
(4)上層應(yīng)用:這就是我們平時編寫的PHP程序,通過不同的spai方式得到各種各樣的應(yīng)用模式,如何通過webserver實(shí)現(xiàn)web應(yīng)用、在命令行下已腳本方式運(yùn)行等等。