php扩展开发,调用php函数
php
zend
调用
文件
编程技术
发布日期
2023-06-06
更新日期
2023-06-06
阅读次数 114
文章字数 704
如何在php扩展中,调用现有的php函数呢?比如var_dump
如果你有一定的C语言基础,那么按照正常的开发流程,引入头文件,再调用函数名即可。
下面以var_dump举个例子:
一、在扩展中找到var_dump的头文件。
经过查找,发现该头文件ext/standard/php_var.h,进一步找到c文件为ext/standard/var.c,当然了定义都在头文件里实现则在c文件里。我们只需要引入头文件即可。于是
#include "ext/standard/php_var.h"
二、调用php api
查看头文件中的定义,它定义的php api函数名称是:php_var_dump(zval *struce, int level)
所以第一个参数是zval *类型,第二个参数是int类型(通过查看源码发现是缩进,应该大于等于0,如果是2标识缩进2字符)
于是,试着打印一下$_SERVER,和$_GET,例子如下:
//先尝试加载$_SERVER,默认情况下可能为空
zend_is_auto_global_str("_SERVER", sizeof("_SERVER") - 1);
//取$_SERVER
zval *server = zend_hash_str_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER") - 1);
php_var_dump(server,1); //php_var_dump第一个参数,只能是zval *,第二个是缩进,0-n正数
//再测试var_dump($_GET)
zend_is_auto_global_str("_GET", sizeof("_GET") - 1);
zval *get = zend_hash_str_find(&EG(symbol_table), "_GET", sizeof("_GET") - 1);
php_var_dump(get,1);
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-425.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
php
zend
调用
文件
发表评论
相关推荐