Intereting Posts
Имя PHP-спецификаторы в printf () строках Отправить кнопку нужно дважды щелкнуть, чтобы получить результаты от переключателей в php-скрипте Проблема с плавающей стоимостью PHP-подразделения Установить маршрут Yii2 catchAll в зависимости от результата базы данных Force загружает несколько файлов blob в php Как получить HTML-код веб-страницы в PHP? Вызов функции-члена getSession () для не-объекта в vendor / behat / mink-extension / src / Behat / MinkExtension / Context / RawMinkContext.php в строке 81 Сортировка файлов по каталогу с помощью каталога DirectoryTreeIterator Google OAuth 2.0 возвращает 400 «Bad Request» даже с игровой площадки PHP / Curl – буфер Loop & POST не очищает как мы можем сохранить изображение html5 canvas в базу данных в php Ошибка анализа: синтаксическая ошибка, неожиданный ' Как я могу запрашивать сообщения и использовать атрибут orderby для заказов в цикле в соответствии с датой meta_value? Selenium / PHPUnit: завершение сеанса при повторном использовании сеансов браузера? Работа над многомерным массивом

класс не найден при расширении класса, реализующего интерфейс в PHP

<?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 {}