首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中扩展实现接口的类时找不到类

问在PHP中扩展实现接口的类时找不到类
EN

Stack Overflow用户
提问于 2011-12-01 14:17:55
回答 2查看 3.1K关注 0票数 4
代码语言:javascript
复制
<?php

class A extends B {}

class B implements C {}

interface C {}

上面的代码抛出“致命错误:找不到类'B‘”...是php bug吗?或?

环境:"PHP 5.3.6-13ubuntu3.2 with Suhosin-Patch (cli) (built: Oct 13 2011 23:19:13)版权所有(c) 1997-2011 PHP Group Zend Engine v2.3.0,版权所有(c) 1998-2011 Zend Technologies with Xdebug v2.1.0,版权所有(c) 2002-2010,作者: Derick Rethans“

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-01 14:42:30

具体而言,您在类定义的顺序方面遇到了问题。只要接口是在同一个文件中定义的,就可以在任何地方声明它-但是必须先定义类,然后才能扩展它们。

以下是PHP中完全有效的顺序:

代码语言:javascript
复制
class B implements C { ... }
class A extends B { ... }
interface C { ... }

这就是a closed bug requesting clarification in the PHP5 docs。

一个类似问题的答案(Does the order of class definition matter in PHP?)提到了Autoloading。如果你使用多个文件,你可能会想要研究一下这个问题。

票数 5
EN

Stack Overflow用户

发布于 2011-12-01 14:19:56

您正在以错误的顺序声明类和接口。这是正确的:

代码语言:javascript
复制
interface C {}

class B implements C {}

class A extends B {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8337286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档