Compiler errors 将php5扩展移植到php7并使_STD_ZVAL丢失

Compiler errors 将php5扩展移植到php7并使_STD_ZVAL丢失,compiler-errors,php-7,php-extension,Compiler Errors,Php 7,Php Extension,我正在尝试为php7编译一个php5扩展,但是遇到了MAKE_STD_ZVAL的一些问题,它在php7中似乎不再存在 我正在尝试编译:这使得一些c函数可以用于一些天文计算。我不是c专家,我只想让这个模块为php7工作。那么,问题是什么 MAKE_STD_ZVAL全部关于,并且想知道我需要如何或什么来更改,以使下面的函数在没有MAKE_STD_ZVAL的情况下工作 PHP_FUNCTION(swe_houses) { char *arg = NULL; int hsys_len, rc

我正在尝试为php7编译一个php5扩展,但是遇到了MAKE_STD_ZVAL的一些问题,它在php7中似乎不再存在

我正在尝试编译:这使得一些c函数可以用于一些天文计算。我不是c专家,我只想让这个模块为php7工作。那么,问题是什么 MAKE_STD_ZVAL全部关于,并且想知道我需要如何或什么来更改,以使下面的函数在没有MAKE_STD_ZVAL的情况下工作

PHP_FUNCTION(swe_houses)
{
   char *arg = NULL;
   int hsys_len, rc;
   char *hsys = NULL;
   double tjd_ut, geolat, geolon;
   double cusps[37], ascmc[10]; 
   int i, houses;
   zval *cusps_arr, *ascmc_arr;

   if(ZEND_NUM_ARGS() != 4) WRONG_PARAM_COUNT;

   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ddds",
        &tjd_ut, &geolat, &geolon, &hsys, &hsys_len) == FAILURE) {
        return;
   }

   if (hsys_len < 1)
        return;

   rc = swe_houses(tjd_ut, geolat, geolon, hsys[0], cusps, ascmc);

   /* create 2 index array, and 1 assoc array */
   array_init(return_value);

   MAKE_STD_ZVAL(cusps_arr);
   array_init(cusps_arr);

   if (hsys[0] == 'G')
       houses = 37;
   else
       houses = 13;

   for(i = 0; i < houses; i++)
       add_index_double(cusps_arr, i, cusps[i]);

       MAKE_STD_ZVAL(ascmc_arr);

       array_init(ascmc_arr);

   for(i = 0; i < 10; i++)

   add_index_double(ascmc_arr, i, ascmc[i]);

   add_assoc_zval(return_value, "cusps", cusps_arr);
   add_assoc_zval(return_value, "ascmc", ascmc_arr);
   add_assoc_long(return_value, "rc", rc);
}
PHP_函数(swe_house)
{
char*arg=NULL;
内华达州许秀莲区;;
char*hsys=NULL;
双tjd_ut、geolat、geolon;
双尖点[37],ascmc[10];
国际一级,住房;
zval*CUPS\u arr,*ascmc\u arr;
如果(ZEND_NUM_ARGS()!=4)参数计数错误;
如果(zend_parse_)参数(zend_NUM_ARGS()TSRMLS_CC,“ddds”,
&tjd_ut、geolat、geolon、hsys和hsys_len)=故障){
返回;
}
如果(hsys_len<1)
返回;
rc=瑞典房屋(tjd_ut、geolat、geolon、hsys[0]、Cups、ascmc);
/*创建2个索引数组和1个关联数组*/
数组_init(返回_值);
制造标准件(尖头);
数组_init(尖点_arr);
如果(hsys[0]=='G')
住房=37;
其他的
住房=13;
对于(i=0;i
提到了从PHP7中更改或删除的宏的详细信息。

您可能会发现这很有用:请在发布答案之前阅读。