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!».
Спасибо. О сколько нам открытий чудных.
Комментарий для david-m.livejournal.com:
На деле всё просто: один раз читается дока (полностью), потом changelog’и. И чувство «где-то я это видел» не позволит изобретать велосипеды.
Я регулярно срубаюсь уже на первом пункте списка. Это «неописуемо», как говорила та собака при виде баобаба…
Комментарий для david-m.livejournal.com:
Это ж совсем не сложно, открыть и прочитать :)