Hi Richard

2010/12/31 Richard Quadling <rquadl...@gmail.com>:
> Hi.
>
> What macros exist regarding processing arrays in PHP (core not userland)?

Zend hash, see Zend/zend_hash.c for its API.

> I want to pass ...
>
> array('value1', 'value2', 'value3')

You would do something like:

PHP_FUNCTION(test)
{
       zval *array;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a",
&array) == FAILURE) {
              return;
       }

       /* Z_ARRVAL_P(array) is a HashTable* ptr */
}

>
> to a function and in the function have it converted to
>
> 'value1\0value2\0value3\0\0'.
>
> Conventionally, I'd need to iterate the array to get the lengths of
> all the elements, add the number of elements to this value and then 1
> more for the trailing \0.

The move_forward, get_current etc. hash functions can be used to
iterate, see zend_hash.h:
http://lxr.php.net/opengrok/xref/PHP_TRUNK/Zend/zend_hash.h#194


-- 
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