ʹ�ýӿڣ�interface��������ָ��ij�������ʵ����Щ������������Ҫ������Щ�����ľ������ݡ�
�ӿ���ͨ�� interface �ؼ���������ģ�������һ��������һ���������ж������еķ������ǿյġ�
�ӿ��ж�������з����������ǹ��У����ǽӿڵ����ԡ�
Ҫʵ��һ���ӿڣ�ʹ�� 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 b extends a
{
public function baz(Baz $baz);
}
// ��ȷд��
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
// ����д���ᵼ��һ����������
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';
}
?>
�ӿڼ�������Լ�����ṩ��һ�ֺܺõķ�ʽ��ȷ��ij�����������ijЩ�������μ� instanceof ������������Լ����