好久沒有寫關於PHP的東西了,這次我們講一下PHP核心相關的知識。
按照管理,在開始講解之前我們先準備一下環境:
環境準備:
1. Linux環境,我們使用ubuntu/debian 這兩個系統都可以
2. PHP原始碼,我們講解的代碼為php-5.4.13.tar.gz,代碼大家可以到php官網上面進行下載
3. webserver使用nginx,資料庫為mysql
其中必須準備php原始碼,nginx和mysql可以選擇性安裝
PHP原始碼下載完成後,我們將原始碼解壓,先看一下原始碼的目錄結構:
build: 這裡面主要是一些和源碼編譯相關的檔案
ext: PHP擴充源碼路徑
main:
Zend: zend引擎實現目錄
pear: php擴充以及應用倉庫
sapi: 各種伺服器抽象層代碼,如apache,nginx等
TSRM: 安全執行緒資源管理員
test: 測試代碼
源碼查看的話,我們使用vim+ctags,如果您不明白這個是什麼的話,麻煩自己百度一下。
知識準備:
PHP源碼中用到很多的宏定義,在開始之前,我們先溫習一下宏相關的知識。
1. 雙##號 這個是C語言中的串連符,我們來看一個例子你就明白了。
#define TEST(name) hello_##name
我們看一下調用:TEST(world)的結果為: hello_world
你看明白了嗎!
2. 我們再來看一下但個的#號,這個符號的作用是在宏變數替換後的值前面後面添加雙引號,我們看一個例子
#define TEST(str) #str
我們看一下調用: printf(TEST(HELLO WORLD));的結果為 printf("HELLO WORLD");
3. #line 這個指令用來改變當前的行號和檔案名稱
4. 還有一些常用的宏,這些宏我們會在以後用到時候進行介紹
http://www.bkjia.com/PHPjc/477574.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477574.htmlTechArticle好久沒有寫關於PHP的東西了,這次我們講一下PHP核心相關的知識。 按照管理,在開始講解之前我們先準備一下環境: 環境準備: 1. Linux環...