70-类的原型zend_class_entry

原创 2016年04月27日 13:28:23

70-类的原型zend_class_entry

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源码解析:类的原型zend_class_entry

这一段时间忙着网站改版,没有时间来得及更新博文。 zend_class_entry是内核中定义的一个结构体,是内核实现PHP语言中类与对象的一个非常基础、关键的结构类型。他就相当于我们定义的...
  • zkaipmoo
  • zkaipmoo
  • 2014年01月10日 23:34
  • 1138

基于类 vs 基于原型

在javascript设计与开发新思维  中看到js是基于原型的语言,不同于java语言。所以查询了相关资料来看。参考为: https://developer.mozilla.org/zh-CN/do...
  • prehistorical
  • prehistorical
  • 2016年12月15日 15:51
  • 722

string类型原型

已知类String的原型为:  class String  { public: String(const char *str =NULL); //普通构造函数  String(const S...
  • hehainan_86
  • hehainan_86
  • 2013年11月05日 14:06
  • 1301

基于原型的面向对象语言VS基于类的面向对象语言

参考链接 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model...
  • u010689306
  • u010689306
  • 2016年09月28日 10:14
  • 1151

开发PHP扩展-提供一个可以被PHP使用的类

· 作者:laruence(http://www.laruence.com/) · 本文地址: http://www.laruence.com/2008/04/16/19.html ·...
  • laruence
  • laruence
  • 2008年04月04日 16:27
  • 2974

原型模式(python)

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式本质就是克隆对象,所以在对象初始化操作比较复杂的情况下,很实用,能大大降低耗时,提高性能,因为“不用重新初始化对象...
  • ponder008
  • ponder008
  • 2011年10月10日 10:30
  • 1914

JavaScript中的类和原型的理解

在JavaScript中,类的所有实例对象都从同一个原型对象上继承属性。因此,原型对象是类的核心。 示例中定义了inherit()函数,这个函数返回一个新创建的对象,后者继承自某个原型对象。 如果定义...
  • bboyjoe
  • bboyjoe
  • 2015年11月02日 11:34
  • 608

ES6学习——类语法:继承中的原型链

上篇文章中我们讲了些类的基本概念,其中提到ES6中的类语法是对原型继承的一种封装。JS的原型继承一共有两条原型链,显示和隐式,那么在类继承的语法中,这两条原型链又是怎么样的呢? 继续使用上篇文章中的例...
  • kittyjie
  • kittyjie
  • 2016年01月11日 08:00
  • 1526

基于原型的JavaScript对象和基于类的对象比较

首先举个形象的例子,如果建筑是基于类的系统,则建筑师会先画出房子的蓝图,然后房子都按照该蓝图来建造;如果建筑是基于原型的,建筑师首先会建一所房子,让后将房子都建成这种模样。 基于类的 基于原型的...
  • didiaidada
  • didiaidada
  • 2015年05月05日 10:19
  • 367

c++ string 类的原型

#include #include using namespace std; class String { friend ostream& operator public: String...
  • zhanglu5227
  • zhanglu5227
  • 2013年02月22日 15:38
  • 1991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:70-类的原型zend_class_entry
举报原因:
原因补充:

(最多只允许输入30个字)