Перехват вывода функции var_dump()
Перехват вывода функции var_dump()
Функция PHP var_dump() отображает структурированную информацию о переданных ей параметрах и поэтому очень часто используется для отладки web-приложений. В отличие от сходной функции print_r() она дополнительно выводит типы данных, что в некоторых случаях бывает крайне полезным. Но в то же время функция print_r() позволяет возвращать свой выхлоп в виде строки, тогда как var_dump() без вариантов просто выводит результат. Давайте доработаем эту досадную недоработку.
Штатные средства PHP позволяют буферизировать вывод. Это означает, что вывод из скрипта не отправляется, например, в браузер, а вместо этого сохраняется во внутреннем буфере. Для работы с буферизацией существует целый набор функций контроля вывода. Решение первоначальной задачи сводится к следующему. С помощью функции ob_start() включаем буферизацию, сохраняем в буфер результат работы var_dump(), получаем его содержимое через функцию ob_get_contents() и затем отключаем буферизацию функцией ob_end_clean(). Последние два действия можно объединить, воспользовавшись функцией ob_get_clean(). Большой плюс такого метода в том, что буферизация вывода допускает вложенность и, если в коде ранее уже использовалась функция ob_start(), то последующий вызов буферизации с дальнейшей очисткой на первоначальный результат не повлияет.
Code (PHP) : Убрать нумерацию
- function var_dump_ex(...$vars) {
- ob_start();
- var_dump($vars);
- return ob_get_clean();
- }
Просмотров: 196 | Комментариев: 0
Метки: PHP, полезные функции
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет
Добавить комментарий
Заполните форму для добавления комментария