Hi Thomas

2016-11-25 4:13 GMT+01:00 Thomas Hruska <thru...@cubiclesoft.com>:
> I'm working on updating an extension for PHP 7 compatibility.  I have one
> function that uses an optional zval ** with zend_parse_parameters().
>
>         zval **zprevcount = NULL;
>         int count;
>         int argc = ZEND_NUM_ARGS();
>
>         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|Z",
> &zprevcount) == FAILURE)  return;
>
>         ...
>
>         if (argc > 0)
>         {
>                 count = (int)PrevCount;
>
>                 zval_dtor(*zprevcount);
>                 ZVAL_LONG(*zprevcount, count);
>         }
>
> What's the correct way to translate that into PHP 7?

Since you are working with integers, you can do:

zend_long prevcount = 0;

if(zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &prevcount) == FAILURE)
{
        return;
}

if(prevcount)
{
      /* ... use prevcount ... */
}

Notice that all integers returned from the ZPP is a zend_long, you can
see more information about the ZPP in
php-src/README.PARAMETER_PARSING_API

-- 
regards,

Kalle Sommer Nielsen
ka...@php.net

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to