定義一個接口還是很友善的,我先給出一個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;
}
<?php
class sample implements i_myinterface
{
public $name = "hello world!";
public function hello()
{
echo $this->name."\n";
}
}
$obj = new sample();
$obj->hello();
?>