PHP: compliler_halt_offset

Малоизвестная возможность PHP, появившаяся с версии 5.1 — аналог секции DOC из Perl. Позволяет создать специальную текстовую секцию в конце файла скрипта, откуда можно будет читать данные, например, туда можно поместить страницу помощи к программе или какие-то метаданные.

Секция начинается вызовом специальной конструкции __halt_compiler(), всё, что дальше этой строки интерпретатор не считывает и не выполняет. Смещение, по которому начинаются данные за конструкцией, доступно через константу __COMPILER_HALT_OFFSET__. Почему нельзя было сделать константу, указывающую на файловый ресурс (по аналогии с STDERR) для меня загадка.

Использовать можно, например, так:
echo file_get_contents(__FILE__, null, null, __COMPILER_HALT_OFFSET__);

// the end of the script execution
__halt_compiler();Hello, world!
На печать программа выведет строку «Hello, world!».
9 сентября 2008 13:43

david-m.livejournal.com (david-m.livejournal.com)
9 сентября 2008, 20:24

Спасибо. О сколько нам открытий чудных.

bolk (bolknote.ru)
10 сентября 2008, 10:15, ответ предназначен david-m.livejournal.com:

На деле всё просто: один раз читается дока (полностью), потом changelog'и. И чувство «где-то я это видел» не позволит изобретать велосипеды.

david-m.livejournal.com (david-m.livejournal.com)
10 сентября 2008, 13:04

Я регулярно срубаюсь уже на первом пункте списка. Это «неописуемо», как говорила та собака при виде баобаба…

bolk (bolknote.ru)
10 сентября 2008, 13:43, ответ предназначен david-m.livejournal.com:

Это ж совсем не сложно, открыть и прочитать :)

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)