2016-04-01 8 views
1

PHP拡張モジュールへの参照渡しについてはPassing a variable by reference into a PHP extensionに記載の手順に従っています。これはPHP 5にとってうまくいきますが、Php7で同じことを試してみると動作しません。助言がありますか?ここに私のコードスニペットがあります。PHP7拡張モジュールへの参照渡し変数

ZEND_BEGIN_ARG_INFO(params_ref_arg_arginfo, 0) 
    ZEND_ARG_INFO(1, a) 
ZEND_END_ARG_INFO() 

PHP_FUNCTION(sample_byref_compiletime) 
{ 
    zval *a;  
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &a) == FAILURE) 
    { 
     php_printf("Error"); 
     RETURN_NULL(); 
    }   
    zval_dtor(a); 
    ZVAL_LONG(a, 40); 
} 

    PHP_FE(sample_byref_compiletime, params_ref_arg_arginfo) 

ありがとうございました。

答えて

0

"z"から "z /"に変更します。詳細はhttps://wiki.php.net/phpng-upgradingをご覧ください。可能な型指定子http://php.net/manual/en/internals2.funcs.php

PHP_FUNCTION(sample_byref_compiletime) 
{ 
    zval *a;  
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, 
     "z", &a) == FAILURE) 
    { 
     php_printf("Error"); 
     RETURN_NULL(); 
    } 
    ZVAL_DEREF(a); 
    SEPARATE_ZVAL_NOREF(a); 
    zval_dtor(a); 
    ZVAL_LONG(a, 40); 
} 
+0

ありがとう:

また、あなたはあなたにコードを変更することができます。 "z"から "z /"に変更されました。 – Radha

関連する問題