����ӿ�

ʹ�ýӿڣ�interface��������ָ��ij�������ʵ����Щ������������Ҫ������Щ�����ľ������ݡ�

�ӿ���ͨ�� interface �ؼ���������ģ�������һ����׼����һ���������ж������еķ������ǿյġ�

�ӿ��ж�������з����������ǹ��У����ǽӿڵ����ԡ�

ʵ�֣�implements��

Ҫʵ��һ���ӿڣ�ʹ�� implements �����������б���ʵ�ֽӿ��ж�������з���������ᱨһ���������������ʵ�ֶ���ӿڣ��ö������ָ�����ӿڵ����ơ�

Note:

ʵ�ֶ���ӿ�ʱ���ӿ��еķ���������������

Note:

�ӿ�Ҳ���Լ̳У�ͨ��ʹ�� extends ��������

Note:

��Ҫʵ�ֽӿڣ�����ʹ�úͽӿ���������ķ�����ȫһ�µķ�ʽ������ᵼ����������

����

�ӿ���Ҳ���Զ��峣�����ӿڳ������ೣ����ʹ����ȫ��ͬ�����Dz��ܱ�������ӽӿ������ǡ�

����

Example #1 �ӿ�ʾ��

<?php

// ����һ��'iTemplate'�ӿ�
interface iTemplate
{
    public function 
setVariable($name$var);
    public function 
getHtml($template);
}


// ʵ�ֽӿ�
// �����д������ȷ��
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;
    }
}

// �����д���Ǵ���ģ��ᱨ����Ϊû��ʵ�� getHtml()��
// 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 ������Ľӿ�

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

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

// ��ȷд��
class implements b
{
    public function 
foo()
    {
    }

    public function 
baz(Baz $baz)
    {
    }
}

// ����д���ᵼ��һ����������
class implements b
{
    public function 
foo()
    {
    }

    public function 
baz(Foo $foo)
    {
    }
}
?>

Example #3 �̳ж���ӿ�

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

interface 
b
{
    public function 
bar();
}

interface 
extends ab
{
    public function 
baz();
}

class 
implements c
{
    public function 
foo()
    {
    }

    public function 
bar()
    {
    }

    public function 
baz()
    {
    }
}
?>

Example #4 ʹ�ýӿڳ���

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

// ����ӿڳ���
echo a::b;

// ����д������Ϊ�������ܱ����ǡ��ӿڳ����ĸ�����ೣ����һ���ġ�
class implements a
{
    const 
'Class constant';
}
?>

�ӿڼ�������Լ�����ṩ��һ�ֺܺõķ�ʽ��ȷ��ij�����������ijЩ�������μ� instanceof ������������Լ����