php底層是C語言,故如果想研究底層程式碼需要掌握C言語相關知識。
PHP本身是用C實現的,因此最終呼叫的也都是C的函數,實際上,可以把PHP看成是一個C開發的軟體。(推薦學習:PHP影片教學)
php的zend引擎,包括詞法分析,文法分析,AST 等需要掌握編譯原理的知識。
Zend引擎:純C實現,是PHP的核心部分,它將PHP程式碼翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理並實現相應的處理方法、實現了基本的資料結構(如hashtable、oo)、記憶體分配及管理、提供了相應的api方法供外部調用,是一切的核心,所有的外圍功能均圍繞著Zend實現。
Extensions:圍繞著Zend引擎,extensions透過元件式的方式提供各種基礎服務。我們常見的各種內建函數(如array 系列)、標準函式庫等都是透過extension來實現。
Sapi :全名為Server Application Programming Interface服務端應用程式接口,Sapi透過一系列鉤子函數,使得PHP可以和外圍交互數據,這是PHP非常優雅且成功的一個設計,透過sapi成功的將PHP本身和上層應用解耦隔離,PHP可以不再考慮如何針對不同應用進行相容,而應用程式本身也可以針對自己的特點實現不同的處理方式。
常見的一些sapi有:
apache2handler:這是以apache作為webserver,採用mod_PHP模式運作時候的處理方式,也是現在應用最廣泛的一種。
cgi:這是webserver和PHP直接的另一種互動方式,也就是大名鼎鼎的fastcgi協議,在最近今年fastcgi PHP得到越來越多的應用,也是異步webserver所唯一支持的方式。
cli:命令列呼叫的應用模式上層應用:這就是我們平時編寫的PHP程序,透過不同的sapi方式得到各種各樣的應用模式,如透過webserver實現web應用、在命令列下以腳本方式運行等。
上層應用:這就是我們平時編寫的PHP程序,透過不同的sapi方式得到各種各樣的應用模式,如透過webserver實現web應用程式、在命令列下以腳本方式運行等。
更多PHP相關技術文章,請造訪PHP圖文教學欄位進行學習!
以上是php底層是什麼語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!