1. 我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的;
2. php通過mod_php5.so模組和apache相連(具體說來是sapi,即伺服器應用程式程式設計介面);
3. php總共有三個模組:核心、zend引擎、以及擴充套件層;
4. php核心用來處理請求、檔案流、錯誤處理等相關操作;
5. zend引擎(ze)用以將原始檔轉換成機器語言,然後在虛擬機器上執行它;
6. 擴充套件層是一組函式、類庫和流,php使用它們來執行一些特定的操作。比如,我們需要mysql擴充套件來連線mysql資料庫;
7. 當ze執行程式時可能會需要連線若干擴充套件,這時ze將控制權交給擴充套件,等處理完特定任務後再返還;
8. 最後,ze將程式執行結果返回給php核心,它再將結果傳送給sapi層,最終輸出到瀏覽器上。
在php中函式可以寫在類中也可以不寫在類中,但是如果不寫在類當中的話,就不可以對這個函式加上訪問限定符
而且php頁面的執行是按照順序來執行的,所以先定義的變數可以訪問後定義的變數,但是後定義的變數不可以訪問先定義的
變數,但是如果兩個變數都是定義在類裡面的話就是可以的.
同時php是沒有方法的入口的,它是乙個包含了**的檔案,檔案中類在使用到的時候被初始化,其他的**都是按照順序由上到下
來執行的.
php的執行過程
1.我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的 2.php通過mod php5.so模組和apache相連 具體說來是sapi,即伺服器應用程式程式設計介面 3.php總共有三個模組 核心 zend引擎 以及擴充套件層 4.php核心用來處理請求 檔案流 錯誤處理等相關操...
php的執行過程
比如我們有乙個php檔案test.php如下 執行php test.php實際是什麼樣的呢?主要過程如下 1 呼叫zend compile file 這其實是個函式指標,預設實現是compile file 這個函式其實就是呼叫lex根據zend language scanner.l裡的定義進行詞法分...
php的執行過程
1.我們從未手動開啟過php的相關程序,它是隨著apache的啟動而執行的 2.php通過mod php5.so模組和apache相連 具體說來是sapi,即伺服器應用程式程式設計介面 3.php總共有三個模組 核心 zend引擎 以及擴充套件層 4.php核心用來處理請求 檔案流 錯誤處理等相關操...