众所周知,PHP 4中的对象支持继承,要使一个对象成为另一个对象的派生类,需要使用类似“class sub extends parent”的代码来控制。PHP 4和PHP 5中,一个对象都仅能继承一次,多重继承是不被支持的。不过,在PHP 5中产生了一个新的名词:接口,接口是一个没有具体处理代码的特殊对象,它仅仅定义了一些方法的名称及参数。本节将会详细的介绍接口的创建和使用。
对象接口允许创建一个指定类方法的执行代码,而不必说明这些方法是如何被操作(处理)的。接口作为一个标准类,但没有任何方法有它们内容的定义。在接口中所有的方法必须声明为public,这是接口的特性。创建一个接口需要使用关键字interface。
一个接口的语法格式如下所示:
interface myinterface{
const name1;
..........
const name2;
function methodName1();
......
function methoodNamen();
}
在上述代码中,interface表示创建一个接口,myinterface表示接口的名称。name1等表示在接口中声明的字段,是一个常量。methodName1表示方法的名称,该方法没有方法体。
接口的使用意义在于定义了一系列的标准,让别的类去实现,接口的使用是类之间的关系产生层次感。如果创建了一个接口,而没有相关的类去实现,该接口是毫无意义的。接口需要继承来实现它的价值。一个类继承一个接口的语法格式如下所示:
class Classname implements myinterface{
function methodName1()
{
执行语句
}
......
function methoodNamen(){
执行语句
}
}
在上述代码中,implements关键字表示(执行,实现)实现一个接口。在接口中所有的方法必须在一个类的内部实现,疏忽这些将导致一个致命错误。类可以实现多个接口。通过使用一个逗号分开每个接口。
现在创建一个案例,演示一下创建接口,并实现接口中方法。本案例的代码如下所示:
案例6-5
<?php
interface myinterface
{
const str="中国你好";
public function getV();
public function getH($name,$value);
}
class A implements myinterface{
public function getV(){
echo self::str;
}
public function getH($name,$value){
echo $name.=$value;
}
}
$a=new A();
$a->getV();
$a->getH("<br>郑州","欢迎你");
?>
将上述代码保存,文件名称为interface.php,并将文件保存到指定的位置。打开IE浏览器,在地址栏中输入
http://localhost:8080/class/interface.php,单击【转到】,直接可以运行了。