add_assoc_string
(array, "key", "value", 1);
HashTable *h;
ALLOC_HASHTABLE(h);
zend_hash_init(h, 50, NULL,ZVAL_PTR_DTOR, 0);
zval* barZval;
MAKE_STD_ZVAL(barZval);
ZVAL_STRING(barZval, "value", 0);
zend_hash_add
(h
, "key", 4, &barZval
, sizeof(zval
*), NULL);
//add_assoc_*系列函数:
add_assoc_null
(zval
*aval
, char
*key);
add_assoc_bool
(zval
*aval
, char
*key, zend_bool bval
);
add_assoc_long
(zval
*aval
, char
*key, long lval
);
add_assoc_double
(zval
*aval
, char
*key, double dval
);
add_assoc_string
(zval
*aval
, char
*key, char
*strval, int dup
);
add_assoc_stringl
(zval
*aval
, char
*key,char
*strval, uint
strlen, int dup
);
add_assoc_zval
(zval
*aval
, char
*key, zval
*value
);
//备注:其实这些函数都是宏,都是对add_assoc_*_ex函数的封装。
//add_index_*系列函数:
ZEND_API int add_index_long (zval *arg, ulong idx, long n);
ZEND_API int add_index_null (zval *arg, ulong idx );
ZEND_API int add_index_bool (zval *arg, ulong idx, int b );
ZEND_API int add_index_resource (zval *arg, ulong idx, int r );
ZEND_API int add_index_double (zval *arg, ulong idx, double d);
ZEND_API int add_index_string (zval *arg, ulong idx, const char *str, int duplicate);
ZEND_API int add_index_stringl (zval *arg, ulong idx, const char *str, uint length, int duplicate);
ZEND_API int add_index_zval (zval *arg, ulong index, zval *value);
//add_next_index_*函数:
ZEND_API int add_next_index_long (zval *arg, long n );
ZEND_API int add_next_index_null (zval *arg );
ZEND_API int add_next_index_bool (zval *arg, int b );
ZEND_API int add_next_index_resource (zval *arg, int r );
ZEND_API int add_next_index_double (zval *arg, double d);
ZEND_API int add_next_index_string (zval *arg, const char *str, int duplicate);
ZEND_API int add_next_index_stringl (zval *arg, const char *str, uint length, int duplicate);
ZEND_API int add_next_index_zval (zval *arg, zval *value);
PHP中 内核中
$arr[] = NULL; add_next_index_null(arr);
$arr[] = 42; add_next_index_long(arr, 42);
$arr[] = true; add_next_index_bool(arr, 1);
$arr[] = 3.14; add_next_index_double(arr, 3.14);
$arr[] = 'foo'; add_next_index_string(arr, "foo");
$arr[] = $var; add_next_index_zval(arr, zval);