<?php class A extends B {} class B implements C {} interface C {}
код выше бросает «Неустранимая ошибка: класс« B »не найден» … Это ошибка php? Или?
Окружающая среда: «PHP 5.3.6-13ubuntu3.2 с Suhosin-Patch (cli) (построено: 13.10.2011 23:19:13) Copyright (c) 1997-2011 PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies с Xdebug v2.1.0, Copyright (c) 2002-2010, Derick Rethans "
У вас проблемы с порядком определений классов. Пока интерфейс определен в том же файле, его можно объявить где угодно – но классы должны быть определены до того, как их можно будет расширить.
Следующим является вполне допустимый порядок в PHP:
class B implements C { ... } class A extends B { ... } interface C { ... }
Существует закрытая ошибка, запрашивающая разъяснения в документах PHP5 .
Ответ на аналогичный вопрос (имеет ли смысл определения класса в PHP? ) Упоминает автозагрузку . Возможно, вы захотите изучить это, если используете несколько файлов.
Вы объявляете классы и интерфейсы в неправильном порядке. Это верно:
interface C {} class B implements C {} class A extends B {}