PHP无法从界面扩展?

时间:2013-09-16 14:03:21

标签: php inheritance interface

我在下面的一个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。

3 个答案:

答案 0 :(得分:34)

实现接口和扩展类:

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

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

答案 1 :(得分:18)

extends用于扩展另一个类。

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

(接口可以extend另一个接口,但是)

答案 2 :(得分:2)

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

  • 类扩展了aClass
  • 类实现了一个接口
  • interface extends anInterface

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

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