PHP无法从界面扩展?

roa*_*oul 12 php inheritance interface

我在下面写一个php文件.

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

class engineer extends people
{
    public function take($s){
        echo $s;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

人是一个界面,工程师扩展人.但是,当我运行此代码时,错误:

Fatal error: Class engineer cannot extend from interface people in E:\php5\Mywwwroot\b.php on line 12
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*nde 36

实现接口和扩展类:

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

class engineer implements people
{
    public function take($s){
        echo $s;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 伙计,有些日子我感到愚蠢*.出于某种原因,PHP错误并没有让我想到"哦,我写了*extends*not*implements*". (3认同)
  • @bishop 不,您不笨,错误消息很笨。他们所要做的就是花 2 秒钟思考最清晰的错误消息是什么,并且为全世界所有 PHP 程序员解决了这个问题。但相反,他们选择了一条错误消息,使该特定接口和试图扩展它的特定类看起来似乎不起作用,而不是任何类永远不能扩展任何接口的基本思想。 (2认同)

Spu*_*ley 18

extends 用于扩展另一个类.

对于接口,您需要使用implements.

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

  • 但是`一个接口可以扩展另一个接口,但是` (9认同)