Hi!

> https://wiki.php.net/rfc/php-array-api

Nice API, I am a bit worried though about conversion routines.
Specifically, php_array_zval_to_double() uses different conversion
algorithm than PHP's standard zval to double conversion, which may
result in different results in edge cases. Also, these functions seem to
duplicate existing conversions - we already have code that converts
zvals to anything, couldn't we reuse it? BTW, it's not completely clear
what these conversion functions have to do with arrays - why they are
prefixed with php_array_*? If they aren't meant to be used directly,
maybe prefix them with __ or something? And if they are, maybe we need
better names for them...

In php_array_zval_to_array() the comment says "If the value is an array,
then that zval is returned, otherwise NULL is returned." but the code
says (zarr && (Z_TYPE_P(zarr))) ? zarr : NULL; which means if zarr is
anything but NULL, it would be returned, regardless if it's array or not.

There are a lot of functions that do:
        char *k = estrndup(key, key_len);
Wouldn't it be more efficient to try to use alloca if it's available?

"c" functions can be a bit dangerous, since they assume the argument is
a constant supplied directly in the macro, but there's no way to catch
it if somebody does something like name="foo"; php_array_fetchc(bar, foo);

Thanks,
-- 
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227

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

Reply via email to