首頁 >後端開發 >PHP問題 >php是編譯型語言還是解釋性語言

php是編譯型語言還是解釋性語言

青灯夜游
青灯夜游原創
2022-02-22 11:47:315966瀏覽

php是解釋型語言。 php是一種簡單的、物件導向的、解釋型的、健壯的、安全的、效能非常之高的、獨立於架構的、可移植的、動態的腳本語言;PHP解釋器會將PHP程式碼解釋為opcode之後再交由Zend引擎執行。

php是編譯型語言還是解釋性語言

本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦

php是解譯型語言。每個平台都有對應的php解釋器版本,指針對不同平台均編譯出目標平台的二進位碼;php解釋器會將PHP程式碼解釋為opcode之後再交由Zend引擎執行。

php(Hypertext Preprocessor ),即超文本預處理器;

是一種伺服器端的HTML 腳本語言,是一種簡單的、物件導向的、解釋型的、健壯的、安全的、效能非常之高的、獨立於架構的、可移植的、動態的腳本語言。是一種廣泛用於 Open Source(開放原始碼)的尤其適合 Web 開發並且可以嵌入 HTML 的多用途腳本語言。它的語法接近 C,而且容易學習。

php是編譯型語言,還是解析型語言?

翻譯:將高階語言翻譯成電腦可辨識的機器語言,這就叫做翻譯。翻譯方式:編譯、解釋;

編譯:編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成機器語言的文件,例如:.exe文件,只需一次編譯即可;

解釋:解釋型語言不需要編譯,只有在程式執行時才會進行翻譯,例如php語言,需要有一個專門的解釋器fastcgi直接執行程式碼,每一個語句都是直接執行的時候才會翻譯;這樣的解釋型語言每執行一次就要翻譯一次;

以下是其他語言的程式碼執行過程:

java:程式碼---->透過編譯器,翻譯成java bytecode(字節碼)---->運行時,透過解釋器翻譯成 機器碼

c#:代碼---->編譯成微軟中間碼- --->經由clr翻譯成機器碼

php(4.0版本):程式碼---->翻譯成op code中間碼---->執行階段用Zend 虛擬機執行Opcode ,編譯成機器碼

事實上,絕大部分的程式語言從原始檔到執行碼的轉換過程當中,都是原始碼-中間碼-最終程式碼(機器碼)的形式。而編譯型和解釋型的不同就在於這個過程對於一份相同的源文件在最少情況下是只需一次執行還是可能多次執行的。對於java,正如它的口號“一次編譯,到處執行”那樣,源文件一次性被編譯成中間代碼(class文件),之後在不同機器上的轉換為機器碼的過程由JVM自動完成,已經不用程序員操心了。而php在一般情況下這個轉換過程是會在每次造訪的時候都會執行的。 apc也只是「快取」了中間程式碼,要注意「快取」二字,表示它對於一份原始檔案仍有可能由於時間的推移而多次生成(快取過期)。

APC : atternative php cache,是一個php opcode緩存,目標在於提供一個自由開放健全的框架,用於緩存和優化php的中間程式碼;若安裝了apc,則編譯可以省略,不需要編譯成op code,直接取得緩存,在解釋成機器碼。

推薦學習:《PHP影片教學

以上是php是編譯型語言還是解釋性語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn