PHP-CPP开发扩展(二)

PHP-CPP是一个用于开发PHP扩展的C++库。PHP-CPP提了供一系列完善的文档、易于使用和扩展的类,让你可以相对快速的创建PHP的原生扩展。

输出和错误

上面的helloworld示例里,我们使用 进行输出,并使用了 换行刷新缓冲。 变量其实是 类的一个实例,支持PHP中设置的所有输出缓冲。它与PHP脚本中的 函数基本相同。

几个常用的方法说明:

显示刷新缓冲;

输出换行并刷新缓冲;

输出内容到缓冲;

生成一个PHP notice;

生成一个PHP warning;

生成一个PHP deprecated;

生成一个PHP error

对于错误,通知和警告,我们不需要换行符,但我们仍然必须刷新缓冲区以实际生成输出。 流有一些非常特殊的东西:当你刷新它时,PHP脚本以致命错误结束。

有了上面的几个方法,我们就可以实现PHP的标准输出功能。

使用输出必须引入 头文件。

实现PHP函数

上面的示例里其实我们已经实现了2个PHP函数。接下来,我们看看PHP-CPP如何实现以下4种函数:

无形参无返回值

无形参有返回值

有形参无返回值

有形参有返回值

得益于PHP-CPP封装的 和 类,我们可以很简单的实现上面这些函数。

可以认为是PHP的变量,内部封装了zval结构。通过对运算符的重载,C++里的变量支持自动转为 类型。

1、无形参无返回值

2、无形参有返回值

3、有形参无返回值

4、有形参有返回值

示例:

该函数实现了有形参有返回值,其他几种改改就可以实现。函数里虽然返回的是C++的int类型变量,但是 会自动转为PHP语言类型变量。

我们只需要在 里注册一下:

tips: 最终暴露出来的函数名可以与C++里函数名不同,例如:

也是可以的。

重新编译即可:

(未完待续)

想第一时间获取最新动态,欢迎关注关注 ,不定期为您呈现技术干货。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180725G08PF300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励