zend 根据hashTable,获取指定key的内容zend_hash_find,zend_hash_str_find
                        
                                                            zend
                                                    
                         编程技术
                    
                    
                        
                             发布日期
                            2023-06-05 
                        
                        
                             更新日期
                            2023-06-05 
                        
                        
                             阅读次数 177
                        
                        
                             文章字数 662
                        
                    
                常用方法1:zval * zend_hash_find(*ht, zend_string)
常用方法2:zval * zend_hash_str_find(*ht, str, size_t)
两者差不多,第一个参数是zend_string,第二个参数是str和size_t,返回值则都是zval *
例子1,zend_hash_find:
    zend_string *str;
    str = zend_string_init(ZEND_STRL("HTTP_HOST"), 0);
    // RETURN_STR(str);
    zval * findRes = zend_hash_find(Z_ARRVAL_P(server),str); //zend * zend_hash_find(hashTable, zend_string) //server是zval *类型的数组
    zend_string *hostName = zend_string_copy(Z_STR_P(findRes));  //此时可以用char *或者zend_string *接收,后者更严谨
    RETURN_STR(hostName);例子2,zend_hash_str_find:
   //server是zval *类型的数组
    zval * host = zend_hash_str_find(Z_ARRVAL_P(server), ZEND_STRL("HTTP_HOST")); //取key为HTTP_HOST
    if(Z_TYPE_P(host) == IS_STRING){
        char * host1 = zend_string_copy(Z_STR_P(host));
        RETURN_STR(host1);  //返回HTTP_HOST字符串
    }else{
        RETURN_NULL();
    }文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-424.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
                
                                            zend
                                    
                
                     
                     
                     
                     
                
            
            发表评论
相关推荐