80-定义接口

原创 2016年04月28日 21:56:12

80-定义接口

定义一个接口还是很方便的,我先给出一个PHP语言中的形式。

<?php
interface i_myinterface
{
    public function hello();
}
?>

那它在扩展中的实现是这样的。

zend_class_entry *i_myinterface_ce;

static zend_function_entry i_myinterface_method[]={
    ZEND_ABSTRACT_ME(i_myinterface, hello, NULL) //注意这里的null指的是arginfo
    {NULL,NULL,NULL}
};

ZEND_MINIT_FUNCTION(test)
{   
    zend_class_entry ce;
    INIT_CLASS_ENTRY(ce, "i_myinterface", i_myinterface_method);

    i_myinterface_ce = zend_register_internal_interface(&ce TSRMLS_CC);
    return SUCCESS;
}

我们使用ZEND_ABSTRACT_ME()宏函数来为这个接口添加函数,它的作用是声明一个类似虚函数的东西,不用实现。也就是说我们不用为其添加ZEND_METHOD(i_myinterface,hello){…}的实现。但是这个宏函数只能为我们实现public类型的函数声明,如果有其它特殊需要,需要使用ZEND_FENTRY()宏函数来实现,因为ZEND_ABSTRACT_ME也不过是后者的一种封装。

下面我们在PHP语言中使用这个接口。

<?php
class sample implements i_myinterface
{
    public $name = "hello world!";

    public function hello()
    {
        echo $this->name."\n";
    }
}

$obj = new sample();
$obj->hello();
?>

相关文章推荐

微信开发之本地接口调试(非80端口,无需上传服务器服务器访问)

前言: 本文是总结在开发微信接口时,为方便开发所采取的一些快捷步骤,已节省开发人员难度开发时间从而提高开发效率。 本地测试: (提醒,在本地模拟微信get或post数据时先将校验参数注释掉) ...

微信公众平台申请测试接口URL和TOKEN的配置,怎么在本地让微信能通过80端口访问

最近开始微信公众平台的捣鼓,但相信和很多新手一样,遇到的第一件事就是如何配置url,主要是微信的80端口的蛋疼限制,我想这其中的流程应该是这样的。我们在申请测试帐号时,微信需要指定一个URL和TOKE...

80X86微机原理及接口技术PITC-附录

  • 2013年12月07日 17:47
  • 479KB
  • 下载

ARCGIS54转80系统自定义参数介绍

几个转换的区别: Beijing_1954_To_WGS_1984_1  15918 China - Orduz basin 鄂尔多斯盆地 Beijing_1954_To_WGS_1984_2 ...

51单片机 第5章80C51人机接口技术

  • 2014年09月18日 06:50
  • 3.6MB
  • 下载

LCD的接口- I80(MCU)接口

MCU(I80)接口因为主要针对单片机的领域在使用,因此得名。后在中低端手机大量使用,其主要特点是价格便宜的。MCU-LCD接口的标准术语是Intel提出的8080总线标准,因此在很多文档中用I80来...

2416 RBG 接口 LCD 换成 I80 接口 LCD 驱动修改 NK 部分

在 OEMInit 里面初始化 LCD 。 1、初始化 IO         volatile S3C2416_IOPORT_REG *s2450IOP = (S3C2416_IOPORT...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:80-定义接口
举报原因:
原因补充:

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