php是如何解釋的
來(lái)源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 15:20:19
php是如何解釋的
php是如何解釋的:php會(huì)調(diào)用編譯函數(shù)zend_compile_file()來(lái)進(jìn)行編譯。 這個(gè)函數(shù)的具體實(shí)現(xiàn)其實(shí)是包括兩個(gè)主要過(guò)程的:詞法分析(Lex實(shí)現(xiàn)),語(yǔ)法分析(Yacc實(shí)現(xiàn))。當(dāng)執(zhí)行完這個(gè)函數(shù)之后:php腳本的編譯就算結(jié)束了。 這個(gè)函數(shù)的輸入是:php腳本文件,而輸出則是op_arra
導(dǎo)讀php是如何解釋的:php會(huì)調(diào)用編譯函數(shù)zend_compile_file()來(lái)進(jìn)行編譯。 這個(gè)函數(shù)的具體實(shí)現(xiàn)其實(shí)是包括兩個(gè)主要過(guò)程的:詞法分析(Lex實(shí)現(xiàn)),語(yǔ)法分析(Yacc實(shí)現(xiàn))。當(dāng)執(zhí)行完這個(gè)函數(shù)之后:php腳本的編譯就算結(jié)束了。 這個(gè)函數(shù)的輸入是:php腳本文件,而輸出則是op_arra

php會(huì)調(diào)用編譯函數(shù)zend_compile_file()來(lái)進(jìn)行編譯。 這個(gè)函數(shù)的具體實(shí)現(xiàn)其實(shí)是包括兩個(gè)主要過(guò)程的:詞法分析(Lex實(shí)現(xiàn)),語(yǔ)法分
析(Yacc實(shí)現(xiàn))。當(dāng)執(zhí)行完這個(gè)函數(shù)之后:php腳本的編譯就算結(jié)束了。 這個(gè)函數(shù)的輸入是:php腳本文件,而輸出則是op_array.簡(jiǎn)單一
點(diǎn)說(shuō):編譯過(guò)程就是把腳本給解析成一條條php虛擬機(jī)可以處理的指令,而op_array就是這些指令做成的一個(gè)array而已(這很類似一些
編譯型語(yǔ)言編譯產(chǎn)生的匯編代碼了,也是一條條的命令)。
之后php虛擬機(jī)會(huì)調(diào)用zend_execute()這個(gè)函數(shù)來(lái)執(zhí)行。該函數(shù)的輸入就是上邊編譯階段產(chǎn)生的op_array,在這里他會(huì)解析每條命令并進(jìn)
行處理。 由于op命令一共有150左右,所以它需要處理這150中命令。這里會(huì)產(chǎn)生一個(gè)很有意思的問(wèn)題:它是如何處理這150種命令的
呢?首先每條命令都是有對(duì)應(yīng)的處理器來(lái)進(jìn)行處理的。所以:虛擬機(jī)會(huì)依據(jù)op_array中各條命令的類型來(lái)分發(fā)給響應(yīng)的處理器來(lái)進(jìn)行處
理。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
php是如何解釋的
php是如何解釋的:php會(huì)調(diào)用編譯函數(shù)zend_compile_file()來(lái)進(jìn)行編譯。 這個(gè)函數(shù)的具體實(shí)現(xiàn)其實(shí)是包括兩個(gè)主要過(guò)程的:詞法分析(Lex實(shí)現(xiàn)),語(yǔ)法分析(Yacc實(shí)現(xiàn))。當(dāng)執(zhí)行完這個(gè)函數(shù)之后:php腳本的編譯就算結(jié)束了。 這個(gè)函數(shù)的輸入是:php腳本文件,而輸出則是op_arra