您好,登錄后才能下訂單哦!
實(shí)現(xiàn)一個(gè)加法函數(shù),傳入2個(gè)參數(shù),計(jì)算相加的和: 1.創(chuàng)建一個(gè)新的擴(kuò)展 ./ext_skel --extname=hello 2.vi config.m4 去掉以下3行行首的dnl PHP_ARG_ENABLE(hello, whether to enable strive support, Make sure that the comment is aligned: [ --enable-hello Enable strive support]) 3,編寫代碼 1.vi hello.c 2.#添加下面的代碼 ZEND_BEGIN_ARG_INFO(addition_arginfo, 0) ZEND_ARG_INFO(0, num1) ZEND_ARG_INFO(0, num2) ZEND_END_ARG_INFO() PHP_FUNCTION(addition) { long num1,num2; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &num1, &num2) == FAILURE) { return; } RETURN_LONG(num1+num2); } 3.在數(shù)組中添加函數(shù)名: const zend_function_entry hello_functions[] = { PHP_FE(addition, NULL) /* addition function */ } 解釋: 這里創(chuàng)建的拓展名為hello,所以需要編輯hello.c文件,在里面加上相應(yīng)的函數(shù)。這里加上了addition 函數(shù),主要功能是實(shí)現(xiàn)兩個(gè)參數(shù)的相加。定義了2個(gè)參數(shù),num1與num2。 ZEND_BEGIN_ARG_INFO :開始參數(shù)塊定義 ZEND_END_ARG_INFO :結(jié)束參數(shù)塊定義 ZEND_ARG_INFO :聲明普通參數(shù) PHP_FUNCTION(addition) :這里是為擴(kuò)展添加具體的函數(shù),函數(shù)名為(addition) 函數(shù)內(nèi)定義了兩個(gè)long類型的變量,這里定義的變量與上面參數(shù)塊中定義的對(duì)應(yīng)。 RETURN_LONG:表示返回一個(gè)long類型的值, 4.編譯安裝擴(kuò)展, phpize ./configure --with-php-config=php_conf_dir make && make install vi php.ini extension=strive.so reload php-fpm 5.測(cè)試addition函數(shù)是否可用: php -r 'echo addition(10,40);'
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。