小磊无痕博客

生命在于折腾

php 接口


接口

使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。


我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。


接口中定义的所有方法都必须是public,这是接口的特性。



实现
要实现一个接口,可以使用implements操作符。类中必须实现接口中定义的所有方法,否则 会报一个fatal错误。如果要实现多个接口,可以用逗号来分隔多个接口的名称。


Note:


实现多个接口时,接口中的方法不能有重名。


Note:


接口也可以继承,通过使用extends操作符。
接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值,不能被子类或子接口修改。


}




// 实现接口
// 下面的写法是正确的
class Template implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
  
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }
 
        return $template;
    }
}


// 下面的写法是错误的,会报错:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>
Example #2 Extendable Interfaces


<?php
interface a
{
    public function foo();
}


interface b extends a
{
    public function baz(Baz $baz);
}


// 正确写法
class c implements b
{
    public function foo()
    {
    }


    public function baz(Baz $baz)
    {
    }
}


// 错误写法会导致一个fatal error
class d implements b
{
    public function foo()
    {
    }


    public function baz(Foo $foo)
    {
    }
}
?>
Example #3 多个接口间的继承


<?php
interface a
{
    public function foo();
}


interface b
{
    public function bar();
}


interface c extends a, b
{
    public function baz();
}


class d implements c
{
    public function foo()
    {
    }


    public function bar()
    {
    }


    public function baz()
    {
    }
}
?>
Example #4 使用接口常量


<?php
interface a
{
    const b = 'Interface constant';
}


// 输出接口常量
echo a::b;


// 错误写法,因为常量的值不能被修改。接口常量的概念和类常量是一样的。
class b implements a
{
    const b = 'Class constant';
}
?>
你也可以看看instanceof关键字的文档。




阅读更多
版权声明:欢迎转载 https://blog.csdn.net/xl13396198577/article/details/52381570
文章标签: 接口 php
个人分类: php
想对作者说点什么? 我来说一句

网银接口PHP代码11

2009年07月01日 220KB 下载

中国银联网上银行接口 for PHP

2011年06月24日 277KB 下载

网银接口网银接口PHP

2008年12月07日 3KB 下载

PHP支付宝各种接口教程与示例

2010年02月18日 86KB 下载

php飞信接口类及例子

2011年06月08日 3KB 下载

飞信接口PHP版 (免费发短信)

2009年09月04日 27KB 下载

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

不良信息举报

php 接口

最多只允许输入30个字

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