内部类

3.4.1.6 内部类

前面我们介绍了类的基本组成以及用户自定义类的编译,除了在PHP代码中可以定义一个类,我们也可以在内核或扩展中定义一个类(与定义内部函数类似),这种类称之为 内部类

相比于用户自定义类的编译实现,内部类的定义比较简单,也更加灵活,可以进行一些个性化的处理,比如我们可以定义创建对象的钩子函数:create_object,从而在对象实例化时调用我们自己定义的函数完成,这样我们就可以进行很多其它的操作。

内部类的定义简单的概括就是创建一个zend_class_entry结构,然后插入到EG(class_table)中,涉及的操作主要有:

  • 注册类到符号表
  • 实现继承、接口
  • 定义常量
  • 定义成员属性
  • 定义成员方法

实际这些与用户自定义类的实现相同,只是内部类直接调用相关API完成这些操作,具体的API接口本节不再介绍,我们将在后面介绍扩展开发一章中再系统说明。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3