16

我在下面写在一个 php 文件中。

<?php
interface people
{
    public function take($s);
}

class engineer extends people
{
    public function take($s){
        echo $s;
    }
}
?>

人是一个接口,工程师扩展了人。但是当我运行这段代码时,错误:

Fatal error: Class engineer cannot extend from interface people in E:\php5\Mywwwroot\b.php on line 12

发生了什么事?我的 PHP 版本是 5.4。

4

3 回答 3

42

实现接口并扩展类:

<?php
interface people
{
    public function take($s);
}

class engineer implements people
{
    public function take($s){
        echo $s;
    }
}
?>
于 2013-09-16T14:04:14.720 回答
18

extends用于扩展另一个类。

对于接口,您需要改为使用implements

(虽然一个接口可以是extend另一个接口)

于 2013-09-16T14:04:15.610 回答
2

取决于你想要什么,它可能是:

  • 类扩展一个类
  • 类实现一个接口
  • 接口扩展了一个接口

您只能扩展一个类/接口并实现多个接口。您可以将接口扩展到另一个接口,例如接口 DieselEngineInterface 扩展 EngineInterface。

还要注意一个注释,现在您可以拥有类和接口层次结构,您需要知道何时使用它们。

于 2014-03-06T00:58:06.617 回答