在模块加载时初始一个全局box HashTable数组, 然后定义一个方法获取这个值,但返回为空有空帮忙看看
PHP_MINIT_FUNCTION(xy)
{
/* If you have INI entries, uncomment these lines
REGISTER_INI_ENTRIES();
  */
    HashTable *ht;
    zval val;
    zval result;    (box) = (HashTable *)pemalloc(sizeof(HashTable), 64);
    if ((box) == NULL) {
      zend_error(E_ERROR, "Cannot allocate persistent HashTable ?");
    }
    zend_hash_init(box, 8, NULL, NULL, 1);
    GC_FLAGS(box) |= IS_ARRAY_IMMUTABLE;    (ht) = (HashTable *)pemalloc(sizeof(HashTable), 32);
    if ((ht) == NULL) {
        zend_error(E_ERROR, "Cannot allocate persistent HashTable ?");
    }
    zend_hash_init(ht, 4, NULL, NULL, 1);
    GC_FLAGS(ht) |= IS_ARRAY_IMMUTABLE;    zend_string *k = xy_str_persistent("ab", 3);   
    
    ZVAL_STRING(&val, "1234");
    zend_hash_add(ht, k, &val);    ZVAL_ARR(&result, ht);
    Z_ADDREF_P(&result);
    Z_TYPE_FLAGS_P(&result) = IS_TYPE_IMMUTABLE;
   
    zend_hash_update(box, xy_str_persistent("test", 5), &result);
    
    return SUCCESS;
}PHP_FUNCTION(my_arr)
{
    zend_string *name;
    zval *pzval;
    HashTable *target = box;    if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &name) == FAILURE) {
      return;
    } 
    
    //zend_string *k = xy_str_persistent("test", 5);   
    pzval = zend_symtable_find(target, name);
    if (pzval)
    {
      ZVAL_COPY_VALUE(return_value, pzval);
    }    RETURN_NULL();
}