PHP虛擬機
虛擬機也是計算機,參考物理機的設計,設計虛擬機時,首先應該考慮三個要素:指令,資料存儲,函數棧幀;
指令 (推薦學習:PHP視訊教學)
指令由操作碼和操作數組成;操作碼指明本指令的操作類型,操作數指明操作數本身或操作數的位址;
資料儲存
PHP虛擬機支援多種資料類型:整數、浮點型、字串、數組,物件等;
函數棧幀
PHP虛擬機實作了與實體機類似的函數棧幀結構;
使用_zend_vm_stack表示堆疊結構;多個堆疊之間使用prev欄位形成單向鍊錶;top和end指向堆疊低和堆疊頂,分別為zval類型的指標;
總結
PHP虛擬機也是計算機,有三點是我們需要重點關注的:指令集(包含指令處理函數)、資料儲存(zval)、函數棧幀;
此時虛擬機已可以接受指令並執行指令碼;
但是,PHP虛擬機是專用執行PHP程式碼的,PHP程式碼如何轉換為PHP虛擬機可以辨識的指令呢-編譯;
PHP虛擬機同時提供了編譯器,可以將PHP程式碼轉換為其可以辨識的指令集合;
理論上你可以自訂任何語言,只要實作編譯器,能夠將自己的語言轉換成PHP可以辨識的指令碼,就能被PHP虛擬機器執行;
以上是php有虛擬機器嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!