zend 根据hashTable,获取指定key的内容zend_hash_find,zend_hash_str_find
zend
编程技术
发布日期
2023-06-05
更新日期
2023-06-05
阅读次数 75
文章字数 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
发表评论
相关推荐