Hi Richard
2010/12/31 Richard Quadling <[email protected]>:
> 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
[email protected]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php