名站导航为爱好php程序的朋友们提供php相关的教程知识。
zend_class_entry是内核中定义的一个结构体,是内核实现PhP程序语言中类与对象的一个非常基础、关键的结构类型。他就相当于我们定义的类的原型。
如果我们想获得一个名字为myclass的类该怎么做呢?首先我们定义一个zend_class_entry变量,并为它设置名字,最后注册到runtime中去。
zend_class_entry *myclass_ce; static zend_function_entry myclass_method[] = { { NULL, NULL, NULL } }; ZEND_MINIT_FUNCTION(sample3) { zend_class_entry ce; //"myclass"是这个类的名称。 INIT_CLASS_ENTRY(ce, "myclass",myclass_method); myclass_ce = zend_register_internal_class(&ce TSRMLS_CC); return SUCCESS; }
这样我们便定义了一个类myclass,而且我们可以正常的在PhP程序语言中使用它,比如:
<?php $obj = new myclass(); ?>
我们上面还定义了一个myclass_ce指针,他是干什么用的呢?当我们在扩展中对这个类进行操作,比如生成具体实例操作的时候,会使用到它,它的作用就类似与打开文件的操作句柄。
好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,PhP程序内核探索:类的定义
定义类的第一步,便是先定义好这个类的zend_class_entry,这一步操作是在MINIT阶段完成的。