80-定义接口

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();
?>
阅读更多
文章标签: php
个人分类: php系列
想对作者说点什么? 我来说一句

外汇“海豚“模版

2017年10月22日 46KB 下载

80-欧元专业版

2013年11月03日 1KB 下载

定义搜索接口接口接口接口

2010年03月09日 50KB 下载

80-相关规范及配套文件.rar

2012年03月07日 1.39MB 下载

VGA信号接口定义

2010年08月07日 45KB 下载

常规LVDS接口液晶屏定义

2010年07月02日 25KB 下载

PCI接口完整引角定义原理图

2008年09月08日 77KB 下载

IDE接口及针脚定义

2014年10月26日 47KB 下载

没有更多推荐了,返回首页

不良信息举报

80-定义接口

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭