溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP擴(kuò)展開發(fā)之整型參數(shù)傳遞

發(fā)布時(shí)間:2020-06-27 14:15:03 來源:網(wǎng)絡(luò) 閱讀:807 作者:abc965432 欄目:web開發(fā)
 實(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);' 
         
    
    
    	
		


向AI問一下細(xì)節(jié)

免責(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)容。

AI