使php5 c ++扩展在php7中工作

时间:2016-02-04 09:23:27

标签: c++ php-7

以下代码是php5中的c ++扩展。

PHP_FUNCTION(fun)
{
    char *from = NULL;
    char *to = NULL;
    int from_len, to_len;
    double oldx, oldy;
    zval *newx, *newy;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssddzz", &from, &from_len, &to, &to_len, &oldx, &oldy, &newx, &newy) == FAILURE) {
        return;
    }

    if (!newx->is_ref__gc || !newy->is_ref__gc)
    {
        printf("newx or newy isn't by ref");
        return;
    }

    convert_to_double(newx);
    convert_to_double(newy);
    func1(from, to, oldx, oldy, Z_DVAL_P(newx), Z_DVAL_P(newy));
    RETURN_LONG(result);
}
void func1(const char *from, const char *to, double oldx, double oldy, double &newx, double &newy)
{
    modify the values of newx and newy here
    ...
}

我们可以使用此扩展程序获取$ x,$ y的修改值:

func("abc", "sfsrf", 110.89889, 32.64534534 , $x, $y);

你不需要关心“来自”,“来”,“oldx”和“oldy”。它们仅用于修改x $和$ y。

这些代码在php5中运行良好。但是,它在php7中不起作用。例如,php7中不存在is_ref__gc。当然,还有很多其他问题。

如何修改此扩展以在php7中使用它。而且我不想修改fun()的界面。

0 个答案:

没有答案