Рослый print php. PHP — print_r и var_dump, ускоряем работу простыми функциями. Зачем нужны print_r и var_dump

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

$array = array(5 , 23 , "Denis" ) ;
print_r($array) ;
?>

Мы использовали массив из прошлого урока, и применили к нему функцию print_r . Показывать результат выполнения этой функции я не вижу смысла, просто напишите этот код и посмотрите результат в браузере. Там мы увидим, ключевое слово Array , и в скобках будут последовательно перечисляться индексы и их значения. Таким образом, мы можем просматривать даже самые большие массивы при помощи одной строчки. Это все, что я хотел рассказать про эту функцию. Вот такая сегодня получилась маленькая, легкая, а самое главное полезная статья. До скорой встречи!

В php есть жизненно необходимые функции, без которых разработчику просто не обойтись. Речь пойдет о print_r и немного про var_dump 🙂

Зачем нужны print_r и var_dump?

print_r чаще всего используют для массивов и основной задачей является именно узнать, какие ключи (если это ассоциативный массив или с большим уровнем вложенности многомерный) и значения находятся в массиве. Записывается следующим образом:

Нам на экраны выдаст следующий результат:

Array ( => 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9)

Несмотря на свою простоту, данный массив сложно читается, а если бы его структура состояла из нескольких уровней, то найти нужную информацию было бы очень затруднительно. К счастью, в HTML есть тег, который поможет с этим справиться, это тег pre :

Echo "

";
print_r($arg);
echo "
";

Как видно из кода, print_r записывается между тегами pre, и в результате видим следующую картину:

Array ( => 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9)

Особенность тега pre еще и в том, что он отображает все символы пробелов, если вы указываете много пробелов, они записываются как один:
«По умолчанию, любое количество пробелов идущих в коде подряд, на веб-странице показывается как один.»
То есть, такая запись:

Привет как дела?

Привет как дела?

Для массивов считаю что print_r это инструмент номер один 🙂

Зачем нужен var_dump?

Для обычных переменный, которые содержат строки, числа и т.д. есть простые способы вывода — echo и print . Но иногда этого недостаточно, в PHP у каждого значения есть свой тип . Есть правда неприятная особенность, тип может меняться, и запись:

Echo $a = 15 + "19";

Выдаст следующее значение:

Хотя мы передали одно число и одну строку. var_dump позволяет узнать к какому типу данных относится значение:

int сокращение от integer — целое число. Записывается не сложнее чем print_r:

Echo "

";
var_dump($arg);
echo "
";

Тип данных это важная вещь, но лично я print_r`ом пользуюсь гораздо чаще.

print_r и var_dump в 1С-Битрикс

В битриксе есть файл, который выполняется при каждой загрузке страницы — init.php , и для того чтобы каждый раз не писать много кода, можно записать 2 простые функции:

"; print_r($arg); echo ""; } function vd($arg) { echo "

";
 var_dump($arg);
 echo "
"; }

После записи можно передавать переменную, и что самое главное, массив. Запись для вызова будет следующая.

Для своего удобства я написал аналог функции print_r . Сразу покажу, чем она отличается:

UPD: добавлена разметка и стиль для корректного отображения пустых массивов и объектов.

UPD: добавлено отображение количества дочерних элементов массива или свойств объекта (число справа от названия ключа массива).

UPD: добавлена возможность сворачивать дочерние массивы массива (клик по количеству дочерних).

UPD: добавлено отображение файла и строки, откуда была вызвана функция.

UPD: теперь параметры в функцию можно передавать не массивом, а поштучно, причём в любом порядке.

Что функция умеет

  • выводить скалярные переменные, массивы, объекты, ресурсы;
  • выделять цветом тип данных;
  • выделять цветом область видимости свойств;
  • явно отображать значения булевых переменных и NULL ;
  • выводить тип ресурса;
  • автоматически обрезать длинные строки;
  • выводить массив в виде дерева, с возможностью сворачивания узлов (ради чего всё это было затеяно);
  • выводить дерево в свёрнутом виде или развёрнутым до определённого ключа;
  • отображать файл и строку, откуда была вызвана функция;
  • засекать время, прошедшее между двумя вызовами функции;
  • искать текст в ключах и значениях массивов.

И самое главное

Никаких внешних зависимостей!

Как использовать

Нужно подключить файл nf_pp.php

Include "nf_pp.php";

и можно пользоваться

Pp($val);

Опции

Вторым аргументом в функцию можно передать массив параметров.

Pp($val, array("trimString" => 0));

Доступны такие опции:

UPD: мне надоело передавать параметры в функцию массивом и я сделал, чтобы их можно было передавать прямо так, причём в любом порядке. Пример:

Pp($val, 300, "КириЛлиЦА");

Pp($val, "КириЛлиЦА", 0);

Pp($val, "КириЛлиЦА");

Парамертры определяются по типу. Если передано число, то это — trimString , если булев параметр, то это — autoCollapsed ; если строка или массив, то это — autoOpen .

Примеры использования

Просто вывести массив

Pp($val);

Вывести массив в свёрнутом виде

Pp($val, array("autoCollapsed" => TRUE));

Вывести массив, раскрытый до ключей «c» и «subarray»

Pp($val, array("autoOpen" => array("c", "subarray")));

Вывести массив, раскрытый до ключа «c»

Pp($val, array("autoOpen" => array("c")));

Pp($val, array("autoOpen" => "c"));

print_r — Выводит удобочитаемую информацию о переменной

Описание

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r() , var_dump() и var_export() могут также показывать защищенные (protected) и закрытые (private) атрибуты объектов в PHP 5. Статические элементы класса не будут отображены.

Следует помнить, что print_r() установит внутренний указатель массива в его конец. Используйте функцию reset() для установки его в начало массива.

Список параметров

expression

Выражение для вывода на экран.

return

Если Вы хотите перехватить вывод print_r() , используйте параметр return . Если его значение равно TRUE , то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию).

Возвращаемые значения

Если в функцию передаются значения типов string , integer или float , будет напечатано само значение. Если передается массив array , значениия будут напечатаны в формате, показывающем ключи и елементы массива. Аналогичный формат вывода используется для объектов.

Примечания

Замечание :

Эта функция использует внутреннюю буферизацию вывода с этим параметром, поэтому она не может быть использована внутри коллбэк-функции ob_start() .

Список изменений

Примеры

Пример #1 Пример использования print_r()

$a
= array ("a"
=>
"apple"
,
"b"
=>
"banana"
,
"c"
=> array ("x"
,
"y"
,
"z"
));
print_r ($a );
?>

Результат выполнения данного примера:

Array
([a] => apple
 [b] => banana
 [c] => Array
 ( => x
 => y
 => z))



error: Контент защищен !!