PHP界面问题 - 找不到类

Dav*_*vid 11 php interface

嗨,我有一个非常简单的类,实现了一个接口.类和接口都在同一个文件中.

当我实现接口时,我得到一个致命的错误"Class not found",但当我删除工具然后尝试使用该类我可以使用它很好???

任何人都可以就此提出任何建议吗?

对不起,这是我目前用来测试的一些代码:

$tester = new TypeOneTester();
$tester->test("Hello");

interface iTestInterface
{
    public function test($data);
}

class TypeOneTester implements iTestInterface
{
    public function test($data)
    {
        return $data;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jac*_*kin 11

在定义类和接口之后创建类的实例,而不是之前.

在这种情况下,定义的顺序应该是:

  1. 接口
  2. 类(对象)的实例

  • 为什么只有在使用接口时才会失败?即当使用普通类和抽象类时,则不存在此问题 (2认同)

Mik*_*kel 5

这是(非常糟糕的)记录的限制:

http://php.net/manual/pl/migration5.incompatible.php

在某些情况下,必须在使用前声明类.只有在使用PHP 5的某些新功能(例如接口)时才会发生这种情况.否则行为是旧的.

尽管如此,我还是提交了一份错误报告.IMO它应该被修复,因为它是不一致的行为,并且错误消息对任何假设我没有帮助的人,PHP根本不关心你声明函数/类的位置.来吧,它已经存在超过10年了...

https://bugs.php.net/bug.php?id=69665