PHP内核探索:类的原型zend_class_entry
PHP内核    2019-04-25 16:24:40    9    0    0
admin   PHP内核

zend_class_entry是内核中定义的一个结构体,是内核实现PHP语言中类与对象的一个非常基础、关键的结构类型。他就相当于我们定义的类的原型。

如果我们想获得一个名字为myclass的类该怎么做呢?首先我们定义一个zend_class_entry变量,并为它设置名字,最后注册到runtime中去。

01zend_class_entry *myclass_ce;
02 
03 
04static zend_function_entry myclass_method[] = {
05    { NULL, NULL, NULL }
06};
07 
08ZEND_MINIT_FUNCTION(sample3)
09{
10    zend_class_entry ce;
11     
12    //"myclass"是这个类的名称。
13    INIT_CLASS_ENTRY(ce, "myclass",myclass_method);
14    myclass_ce = zend_register_internal_class(&ce TSRMLS_CC);
15    return SUCCESS;
16}

这样我们便定义了一个类myclass,而且我们可以正常的在PHP语言中使用它,比如:

1<?php
2$obj new myclass();
3?>

我们上面还定义了一个myclass_ce指针,他是干什么用的呢?当我们在扩展中对这个类进行操作,比如生成实例的时候,会使用到它,它的作用就类似与打开文件的操作句柄。

上一篇: PHP内核探索:类的定义

下一篇: PHP内核探索:类的成员方法

9
登录 后评论.
没有帐号? 现在注册.
0 评论
Table of content