[李景山php] PHP扩展开发系列教程-1

PHP的核心由两部分组成。最底层是zend引擎(ZE)。另一部分是PHP内核,她绑定了SAPI层(Server Application Programming Interface).

扩展的内存管理


1 依赖ZE内部管理

2 自己写内存管理

创建基础hello 扩展


config.m4


这个是 Phpize 用来编译的扩展文件的配置文件

php_hello.h 配置文件


进行配置文件

hello.c


原文件
关键的代码

RETURN_STRING(str,0/1);


从 0 或者1 代表是否需要 ZE引擎对内存进行处理。 或者 是否拷贝
同理有,RETURN_LONG(),RETURN_DOUBLE(),等等

新增扩展内部函数


如何在扩展中新增一个函数


1 在 扩展.c中function_entry 结构中添加对应的 PHP_FE();
static function_entry hello_functions[] {
PHP_FE(hello_long,NULL);
}

2 在扩展文件中添加相应函数的实现

PHP_FUNCTION(hello_long){
RETURN_DOUBLE(3.1415926);
}

3 在扩展的头文件,如 php_hello.h函数中添加函数原型声明

PHP_FUNCTION(hello_long);

添加新的函数后,可以重新在编译一次, 推荐 make clean all

非标量的返回类型


资源[msyql_connect],数组,对象(new class)

通过php.ini初始化你扩展的配置


下一节继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值