HashTable的使用示例:

 

/*  Demo */
PHP_METHOD(tonic_application, showglobals)
{
    zval *val = NULL;
    zval *ht_arr = NULL;

    MAKE_STD_ZVAL(ht_arr);
    array_init(ht_arr);
    MAKE_STD_ZVAL(val);
    ZVAL_STRING(val,"dopool",1);

    if(zend_hash_add(Z_ARRVAL_P(ht_arr),"a",sizeof("a"),&val,sizeof(zval*), NULL) == FAILURE)
    {
        php_printf("zend_hash_add errored!\n");
        return;  /*  直接return会导致内存泄露,所以这里是错误的..是禁止的... */
    }

    zval **ppzval=NULL;
    if( zend_hash_find(Z_ARRVAL_P(ht_arr),"a",sizeof("a"),(void**)&ppzval) == FAILURE)
    {
        php_printf("error!\n");
    }
    if( ppzval != NULL)
    {
        RETVAL_ZVAL(*ppzval, 10);
    }
    zval_ptr_dtor(&ht_arr);
    zval_ptr_dtor(&val);

 

demo是写出来了,可是还没有完全理解HashTable的东东,还要看看...

  

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-17
  • 2021-11-06
  • 2022-12-23
猜你喜欢
  • 2022-01-07
  • 2021-08-11
  • 2022-12-23
  • 2021-06-05
  • 2021-06-02
  • 2021-08-13
相关资源
相似解决方案