程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP內核學習-01-前期准備

PHP內核學習-01-前期准備

編輯:關於PHP編程

好久沒有寫關於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. 還有一些常用的宏,這些宏我們會在以後用到時候進行介紹


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved