技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP扩展内如何定义类、方法?

PHP扩展内如何定义类、方法?

浏览:1035次  出处信息

PHP 类底层数据结构为 zend_class_entry 结构体,下面是摘录源代码 稍微了解下即可。
可以看到 有类名、继承父类入口,函数表,静态资源,属性(资产),各种魔术方法,继承接口,构造/析构函数等。

所以需要首先声明 类

那么类的定义写在哪里呢?

这要看你所需要的初始化阶段,一般在 PHP_MINIT_FUNCTION 阶段或 ZEND_MINIT_FUNCTION 内,即 当扩展模块加载时(PHP 启动时/代码内手动load时)处理。
当然看业务需求 也可以在 每个Request请求时处理 PHP_RINIT_FUNCTION 内。
这里有个小技巧,如果可能尽量把类入口定义 抽出到公共区域,因为你在定义各种属性方法,使用函数时,都会需要类 ce 入口作为参数,这里我们建议写在文件尽量考前的位置(比如 include 之后)。

定义完 zend_class_entry 就完了?

当然不可能,你可能想到了 我 TM 类名还没设置呢就完了。。。。

接着重新编译ini引入扩展 就可以尝试 使用对象了

当然对类操作还有很多其他高级功能,比如说: 定义/初始化类属性,定义类常量,类方法互相调用,静态方法,类继承类/接口,类命名空间等等,后续一一讲解记录。

建议继续学习:

  1. chrome扩展应用开发教程之开发chrome应用基础    (阅读:4437)
  2. PHP内核介绍及扩展开发指南―高级主题    (阅读:3382)
  3. 深入理解PHP原理之扩展载入过程    (阅读:3340)
  4. chrome扩展应用开发教程之调试和打包上线    (阅读:3311)
  5. 编写python的C语言扩展    (阅读:3269)
  6. Mediawiki扩展编写实战    (阅读:3050)
  7. PHP内核介绍及扩展开发指南―类和对象    (阅读:2758)
  8. 用C/C++扩展你的PHP    (阅读:2522)
  9. 检测文本正文是否包含有特定词的PHP扩展    (阅读:2333)
  10. PHP扩展开发:第一个扩展    (阅读:2155)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1