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

发表评论

相关推荐
朱丰华   |   1年前   |   php · 缓存 · opcache

php 加速、提高并发opcache

198    评论    点赞
朱丰华   |   1年前   |   php · zend · 反射 · api

php zend引擎api接口:ZENDAPI阅读,反射调用示例

123    评论    点赞
朱丰华   |   1年前   |   zend · php · 类型 · zval

php内核zval类型,与基本类型的转换

116    评论    点赞
朱丰华   |   1年前   |   php · zend · 调用 · 文件

php扩展开发,调用php函数

101    评论    点赞
朱丰华   |   1年前   |   zend · 常量 · php

php zend操作常量,定义常量,判断常量是否存在,取常量的值

97    评论    点赞
朱丰华   |   1年前   |   zend · php · 字符串 · _string

php扩展zend_string类型与char类型转换

96    评论    点赞
朱丰华   |   1年前   |   zend · php

php zend内核取字符串长度sizeof,ZEND_STRS,ZEND_STRL

165    评论    点赞
朱丰华   |   1年前   |   php · api · 扩展 · 执行

php sapi生命周期

87    评论    点赞
朱丰华   |   1年前   |   php · _server · 域名

php内核,取超全局变量$_SERVER,取域名例子

83    评论    点赞
朱丰华   |   1年前   |   php · 返回 · 字符串

php内核zend引擎返回字符串的几种写法

59    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞