




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PHP擴(kuò)展開(kāi)發(fā)更多內(nèi)容請(qǐng)見(jiàn)2015-04-14 下午分享會(huì)1NTS or TSNone Thread Safe(非線程安全)Thread Safe(線程安全)2開(kāi)發(fā)環(huán)境Windows OR LinuxX86 OR X643Windows環(huán)境VC6(Microsoft Visual C+ 6.0)VC9( Microsoft Visual Studio 2008)VC11( Microsoft Visual Studio 2012)Cygwin64 OR Cygwin_X86Php-depsphp-sdk-binary-toolsPhp源碼4Windows開(kāi)發(fā)流程Buildconfconfigu
2、reext_skel_win32.php 參數(shù) -extname 擴(kuò)展名稱 -proto 定義文件編譯5Linux開(kāi)發(fā)流程ext_skel -extname 擴(kuò)展名稱 -proto 定義文件config.m4PHP_ARG_WITH(example, for example support, -with-example=FILE Include example support. the optional path to example-config)PHP_ARG_WITH(example-extra, for extra libraries for example, -with-exampl
3、e-extra=DIR example: Location of extra libraries for example, no, no)6Linux開(kāi)發(fā)流程Phpizeconfigure -with-php-config=/usr/local/php/bin/php-configMakeMake install7函數(shù)聲明宏語(yǔ)義PHP_MINIT_FUNCTION()當(dāng)PHP被裝載時(shí),模塊啟動(dòng)函數(shù)即被引擎調(diào)用。這使得引擎做一些例如資源類型,注冊(cè)INI變量等的一次初始化。PHP_MSHUTDOWN_FUNCTION()當(dāng)PHP完全關(guān)閉時(shí),模塊關(guān)閉函數(shù)即被引擎調(diào)用。通常用于注銷INI條目PHP_R
4、INIT_FUNCTION()在每次PHP請(qǐng)求開(kāi)始,請(qǐng)求前啟動(dòng)函數(shù)被調(diào)用。通常用于管理請(qǐng)求前邏輯。PHP_RSHUTDOWN_FUNCTION()在每次PHP請(qǐng)求結(jié)束后,請(qǐng)求前關(guān)閉函數(shù)被調(diào)用。經(jīng)常應(yīng)用在清理請(qǐng)求前啟動(dòng)函數(shù)的邏輯。PHP_MINFO_FUNCTION()調(diào)用phpinfo()時(shí)模塊信息函數(shù)被呼叫,從而打印出模塊信息。8PHP的變量typedef struct _zval_struct zvalue_value value;zend_uint refcount;zend_uchar type;zend_uchar is_ref; zval;typedef union _zvalue
5、_value long lval;double dval;struct char *val;int len; str;HashTable *ht;zend_object_value obj; zvalue_value;typedef struct _zval_struct zval;9宏訪問(wèn)對(duì)象C類型Z_LVAL, Z_LVAL_P,Z_LVAL_PP整型值longZ_BVAL, Z_BVAL_P,Z_BVAL_PP布爾值z(mì)end_boolZ_DVAL, Z_DVAL_P,Z_DVAL_PP浮點(diǎn)值doubleZ_STRVAL, Z_STRVAL_P,Z_STRVAL_PP字符串值char *Z
6、_STRLEN, Z_STRLEN_P, Z_STRLEN_PP字符串長(zhǎng)度值intZ_RESVAL, Z_RESVAL_P,Z_RESVAL_PP資源值longZ_ARRVAL, Z_ARRVAL_P,Z_ARRVAL_PP聯(lián)合數(shù)組HashTable *Z_TYPE, Z_TYPE_P,Z_TYPE_PPZval類型Enumeration (IS_NULL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_BOOL, IS_RESOURCE)Z_OBJPROP,Z_OBJPROP_P,Z_OBJPROP_PP對(duì)象屬性hash(本章不
7、會(huì)談到)HashTable *Z_OBJCE, Z_OBJCE_P,Z_OBJCE_PP對(duì)象的類信息(本章不會(huì)談到)zend_class_entry10獲取參數(shù)zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec,);類型指定符對(duì)應(yīng)的C類型描述llong符號(hào)整數(shù)ddouble浮點(diǎn)數(shù)schar *, int二進(jìn)制字符串,長(zhǎng)度bzend_bool邏輯型(1或0)rzval *資源(文件指針,數(shù)據(jù)庫(kù)連接等)azval *聯(lián)合數(shù)組ozval *任何類型的對(duì)象Ozval *指定類型的對(duì)象。需要提供目標(biāo)對(duì)象的類類型zzval *無(wú)任何操
8、作的zval11返回值設(shè)置返回值并且結(jié)束函數(shù)設(shè)置返回值宏返回類型和參數(shù)RETURN_LONG(l)RETVAL_LONG(l)整數(shù)RETURN_BOOL(b)RETVAL_BOOL(b)布爾數(shù)(1或0)RETURN_NULL()RETVAL_NULL()NULLRETURN_DOUBLE(d)RETVAL_DOUBLE(d)浮點(diǎn)數(shù)RETURN_STRING(s, dup)RETVAL_STRING(s, dup)字符串。如果dup為1,引擎會(huì)調(diào)用estrdup()重復(fù)s,使用拷貝。如果dup為0,就使用sRETURN_STRINGL(s, l, dup)RETVAL_STRINGL(s, l,
9、 dup)長(zhǎng)度為l的字符串值。與上一個(gè)宏一樣,但因?yàn)閟的長(zhǎng)度被指定,所以速度更快。RETURN_TRUERETVAL_TRUE返回布爾值true。注意到這個(gè)宏沒(méi)有括號(hào)。RETURN_FALSERETVAL_FALSE返回布爾值false。注意到這個(gè)宏沒(méi)有括號(hào)。RETURN_RESOURCE(r)RETVAL_RESOURCE(r)資源句柄。12自定義php函數(shù)?php$i=3;echo self_concat(“Hello World, $i);13Eg.1PHP_FUNCTION(self_concat)char *str = NULL;int argc = ZEND_NUM_ARGS();int str_len;long n;char *result; char *ptr; int result_length; if (zend_parse_parameters(argc TSRMLS_CC, sl, &str, &str_len, &n) = FAILURE)return;14Eg.2result_length = (str_len * n);result = (char *) emall
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于水電安裝合同范本
- 出國(guó)保姆合同范本
- 拌合站加工合同范本
- 萬(wàn)科景觀合同范本
- 北京市裝飾合同范例
- 冷庫(kù)玉米加工合同范本
- 合作送外賣合同范例
- 公司結(jié)算合同范本
- 地基注漿加固合同范本
- 光伏發(fā)電代理合同范本
- 走進(jìn)李白校本 課程設(shè)計(jì)
- 2025新人教版英語(yǔ)七年級(jí)下單詞默寫單(小學(xué)部分)
- 2024年呼和浩特職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 安全生產(chǎn)管理體系建設(shè)講解
- 2025年春新冀教版英語(yǔ)三年級(jí)下冊(cè)全冊(cè)教學(xué)課件
- 2025年湘教版二年級(jí)美術(shù)下冊(cè)計(jì)劃與教案
- 2024銀行從業(yè)資格個(gè)人貸款教材
- 防職場(chǎng)性騷擾培訓(xùn)課件
- 藥品注冊(cè)管理辦法課件
- “守紀(jì)律、講規(guī)矩、轉(zhuǎn)作風(fēng)、提效能”思想紀(jì)律作風(fēng)整頓學(xué)習(xí)心得體會(huì)
- 2024年河南省通信工程安全員(B證)考試題庫(kù)及答案(管局版)
評(píng)論
0/150
提交評(píng)論