PHP7 扩展中如何在 namespace 中定义函数和类

namespace(命名空间)在 PHP 符号表中的表现只是增加了一个命名前缀,如 ‘Azalea\foo’,因此在定义 PHP_FEPHP_ME 时,只需要修改注册入符号表中的名称即可。

命名空间声明

为了方便以后类和函数的定义或修改,在头文件中加上定义宏来命名是比较便捷的做法

类定义

在类初始化方法内,只需修改成如下即可定义到命名空间内

函数定义

函数的定义稍微复杂,因为 PHP_FE 宏会把 name 加上 zif_ 前缀来声明内部函数,如

因此我们需要使用 ZEND_NS_FEZEND_NS_NAMED_FE 宏来实现

您可能还喜欢

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.