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