Для чего пустым является интерфейс, используемый

Ничего не видно. Страница пуста и белая.

Также известна как Белая страница смерти или Белый экран смерти . Это происходит, когда отчет об ошибках отключен, и произошла фатальная ошибка (часто синтаксическая ошибка).

Если вы включили протоколирование ошибок, вы найдете конкретное сообщение об ошибке в своем журнале ошибок. Обычно это будет в файле php_errors.log, либо в центральном месте (например, /var/log/apache2 во многих средах Linux), либо в самом каталоге самого скрипта (иногда используется в среде совместного размещения).

Иногда может быть более простым временно отображать ошибки. На белой странице отобразится сообщение об ошибке. Будьте осторожны, потому что эти ошибки видны всем, кто посещает веб-сайт.

Это легко сделать, добавив в начале скрипта следующий код PHP:

ini_set('display_errors', 1); error_reporting(~0);

Код включит отображение ошибок и установит отчетность на самый высокий уровень.

Поскольку во время выполнения ini_set() он не влияет на синтаксические ошибки синтаксиса. Эти ошибки появятся в журнале. Если вы хотите также отобразить их на выходе (например, в браузере), вам необходимо установить директиву display_startup_errors на true. Сделайте это либо в php.ini, либо в .htaccess или любом другом методе, который влияет на конфигурацию перед временем выполнения .

Вы можете использовать те же методы для установки параметра log_errors и error_log , чтобы выбрать ваше собственное место в файле журнала.

Если вы посмотрите в журнале или используете дисплей, вы получите гораздо лучшее сообщение об ошибке и строка кода, где ваш скрипт останавливается.

Похожие вопросы:

Связанные ошибки:

36
задан Uwe Keim 12 June 2019 в 06:55
поделиться

9 ответов

Обычно это должно сигнализировать об использовании класса. Можно реализовать IMessage, чтобы сигнализировать, что класс является сообщением. Другой код может тогда использовать отражение, чтобы видеть, ли предназначены Ваши объекты, чтобы использоваться в качестве сообщений и действия соответственно.

Это - что-то, что использовалось в Java много, прежде чем у них были аннотации. В.Net это более чисто для использования атрибутов для этого.

<час>

@Stimpy77 Спасибо! я не думал о нем тот путь. Я надеюсь, что Вы позволите мне перефразировать свой комментарий более общим способом.

Аннотации и атрибуты должны быть проверены во времени выполнения с помощью отражения. Пустые интерфейсы могут быть проверены во время компиляции с помощью системы типов в компиляторе. Это не приносит издержек во времени выполнения вообще, таким образом, это быстрее.

36
ответ дан Mendelt 27 November 2019 в 05:38
поделиться

Также известный как Интерфейс Маркера:

http://en.wikipedia.org/wiki/Marker_interface_pattern

19
ответ дан mattcole 27 November 2019 в 05:38
поделиться

В java Serializable идеальный пример для этого. Это не определяет методов, но каждого класса, который "реализует" его, должен удостовериться, что это является действительно сериализуемым и не содержит ссылки на вещи, которые не могут быть сериализированы, как соединения с базой данных, открытые файлы и т.д.

10
ответ дан André 27 November 2019 в 05:38
поделиться

В Java пустые интерфейсы обычно использовались для "меток" классов - в эти дни, аннотации будут обычно использоваться.

Это - просто способ добавить немного метаданных к высказыванию класса, "Этот класс подходит для <this> вид использования", даже когда никакие общие участники не будут вовлечены.

8
ответ дан Jon Skeet 27 November 2019 в 05:38
поделиться

Обычно это подобно атрибутам. Используя атрибуты предпочтительное к пустым интерфейсам (по крайней мере, так, как FxCop знает). Однако сама.NET использует некоторые из этих интерфейсов как IRequiresSessionState и IReadOnlySessionState. Я думаю, что существует потеря производительности в поиске метаданных при использовании атрибутов, которые заставили их использовать интерфейсы вместо этого.

2
ответ дан Mehrdad Afshari 27 November 2019 в 05:38
поделиться

Работа с NServiceBus в течение прошлого года. В то время как я не говорил бы Udi Dahan, мое понимание - то, что этот интерфейс действительно используется в качестве маркер , прежде всего.

, Хотя я предложил бы, Вы спрашиваете самого человека, если у него были мысли об оставлении этого для будущего расширения. Моя ставка не, поскольку молитва, кажется, для хранения сообщений очень простыми или по крайней мере практически агностик платформы.

Другие отвечают хорошо на более общих причинах пустых интерфейсов.

1
ответ дан dove 27 November 2019 в 05:38
поделиться

Я сказал бы его используемый для "будущей" ссылки или если Вы хотите совместно использовать некоторые объекты, подразумевая, что у Вас могло бы быть 10 классов каждая реализация этого интерфейса.

И отправили их в функцию для работы над ними, но если бы интерфейс пуст, я сказал бы его только "пред" - работа.

0
ответ дан Toon Krijthe 27 November 2019 в 05:38
поделиться

Их называют "Интерфейсами Mark" и предназначены для передачи сигналов об экземплярах отмеченных классов.

, Например... в C++ обычная практика для маркировки как объекты "ICollectible", таким образом, они могут быть сохранены в дженерике не введенные наборы.

Так как кто-то говорит, они должны сигнализировать, что некоторый объект поддерживал поведение, как способность, которая будет собрана, сериализирована, и т.д.

0
ответ дан Juan Manuel 27 November 2019 в 05:38
поделиться

Пустые интерфейсы используются для документирования этого классы, которые реализуют данный интерфейс, имеют определенное поведение

, Например, в Java эти Cloneable, интерфейс в Java является пустым интерфейсом. Когда класс реализует эти Cloneable интерфейс, Вы знаете, что можно назвать выполненным clone() на нем.

0
ответ дан hhafez 27 November 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: