溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP虛擬機(jī)是什么

發(fā)布時間:2020-11-04 14:30:33 來源:億速云 閱讀:118 作者:小新 欄目:編程語言

這篇文章主要介紹了PHP虛擬機(jī)是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

PHP虛擬機(jī)

虛擬機(jī)也是計算機(jī),參考物理機(jī)的設(shè)計,設(shè)計虛擬機(jī)時,首先應(yīng)該考慮三個要素:指令,數(shù)據(jù)存儲,函數(shù)棧幀;

指令  

指令由操作碼和操作數(shù)組成;操作碼指明本指令的操作類型,操作數(shù)指明操作數(shù)本身或者操作數(shù)的地址;

數(shù)據(jù)存儲

PHP虛擬機(jī)支持多種數(shù)據(jù)類型:整型、浮點(diǎn)型、字符串、數(shù)組,對象等;

函數(shù)棧幀

PHP虛擬機(jī)實(shí)現(xiàn)了與物理機(jī)類似的函數(shù)棧幀結(jié)構(gòu);

使用 _zend_vm_stack表示棧結(jié)構(gòu);多個棧之間使用prev字段形成單向鏈表;top和end指向棧低和棧頂,分別為zval類型的指針;

總結(jié)

PHP虛擬機(jī)也是計算機(jī),有三點(diǎn)是我們需要重點(diǎn)關(guān)注的:指令集(包含指令處理函數(shù))、數(shù)據(jù)存儲(zval)、函數(shù)棧幀;

此時虛擬機(jī)已可以接受指令并執(zhí)行指令代碼;

但是,PHP虛擬機(jī)是專用執(zhí)行PHP代碼的,PHP代碼如何能轉(zhuǎn)換為PHP虛擬機(jī)可以識別的指令呢——編譯;

PHP虛擬機(jī)同時提供了編譯器,可以將PHP代碼轉(zhuǎn)換為其可以識別的指令集合;

理論上你可以自定義任何語言,只要實(shí)現(xiàn)編譯器,能夠?qū)⒛阕约旱恼Z言轉(zhuǎn)換為PHP可以識別的指令代碼,就能被PHP虛擬機(jī)執(zhí)行;

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享PHP虛擬機(jī)是什么內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI